X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Fmon%2FLogMonitor.h;fp=src%2Fceph%2Fsrc%2Fmon%2FLogMonitor.h;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=0bb5e366cb905b456d35a41104900529e48f535a;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/mon/LogMonitor.h b/src/ceph/src/mon/LogMonitor.h deleted file mode 100644 index 0bb5e36..0000000 --- a/src/ceph/src/mon/LogMonitor.h +++ /dev/null @@ -1,206 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab -/* - * Ceph - scalable distributed file system - * - * Copyright (C) 2004-2006 Sage Weil - * - * This is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software - * Foundation. See file COPYING. - * - */ - -#ifndef CEPH_LOGMONITOR_H -#define CEPH_LOGMONITOR_H - -#include -#include -using namespace std; - -#include "include/types.h" -#include "PaxosService.h" - -#include "common/LogEntry.h" -#include "include/str_map.h" - -class MMonCommand; -class MLog; - -static const string LOG_META_CHANNEL = "$channel"; - -namespace ceph { -namespace logging { - class Graylog; -} -} - -class LogMonitor : public PaxosService, - public md_config_obs_t { -private: - multimap pending_log; - LogSummary pending_summary, summary; - - struct log_channel_info { - - map log_to_syslog; - map syslog_level; - map syslog_facility; - map log_file; - map expanded_log_file; - map log_file_level; - map log_to_graylog; - map log_to_graylog_host; - map log_to_graylog_port; - - map> graylogs; - uuid_d fsid; - string host; - - void clear() { - log_to_syslog.clear(); - syslog_level.clear(); - syslog_facility.clear(); - log_file.clear(); - expanded_log_file.clear(); - log_file_level.clear(); - log_to_graylog.clear(); - log_to_graylog_host.clear(); - log_to_graylog_port.clear(); - graylogs.clear(); - } - - /** expands $channel meta variable on all maps *EXCEPT* log_file - * - * We won't expand the log_file map meta variables here because we - * intend to do that selectively during get_log_file() - */ - void expand_channel_meta() { - expand_channel_meta(log_to_syslog); - expand_channel_meta(syslog_level); - expand_channel_meta(syslog_facility); - expand_channel_meta(log_file_level); - } - void expand_channel_meta(map &m); - string expand_channel_meta(const string &input, - const string &change_to); - - bool do_log_to_syslog(const string &channel); - - string get_facility(const string &channel) { - return get_str_map_key(syslog_facility, channel, - &CLOG_CONFIG_DEFAULT_KEY); - } - - string get_level(const string &channel) { - return get_str_map_key(syslog_level, channel, - &CLOG_CONFIG_DEFAULT_KEY); - } - - string get_log_file(const string &channel) { - generic_dout(25) << __func__ << " for channel '" - << channel << "'" << dendl; - - if (expanded_log_file.count(channel) == 0) { - string fname = expand_channel_meta( - get_str_map_key(log_file, channel, &CLOG_CONFIG_DEFAULT_KEY), - channel); - expanded_log_file[channel] = fname; - - generic_dout(20) << __func__ << " for channel '" - << channel << "' expanded to '" - << fname << "'" << dendl; - } - return expanded_log_file[channel]; - } - - string get_log_file_level(const string &channel) { - return get_str_map_key(log_file_level, channel, - &CLOG_CONFIG_DEFAULT_KEY); - } - - bool do_log_to_graylog(const string &channel) { - return (get_str_map_key(log_to_graylog, channel, - &CLOG_CONFIG_DEFAULT_KEY) == "true"); - } - - shared_ptr get_graylog(const string &channel); - } channels; - - void update_log_channels(); - - void create_initial() override; - void update_from_paxos(bool *need_bootstrap) override; - void create_pending() override; // prepare a new pending - // propose pending update to peers - void encode_pending(MonitorDBStore::TransactionRef t) override; - void encode_full(MonitorDBStore::TransactionRef t) override; - version_t get_trim_to() override; - bool preprocess_query(MonOpRequestRef op) override; // true if processed. - bool prepare_update(MonOpRequestRef op) override; - - bool preprocess_log(MonOpRequestRef op); - bool prepare_log(MonOpRequestRef op); - void _updated_log(MonOpRequestRef op); - - bool should_propose(double& delay) override; - - bool should_stash_full() override { - // commit a LogSummary on every commit - return true; - } - - struct C_Log; - - bool preprocess_command(MonOpRequestRef op); - bool prepare_command(MonOpRequestRef op); - - bool _create_sub_summary(MLog *mlog, int level); - void _create_sub_incremental(MLog *mlog, int level, version_t sv); - - public: - LogMonitor(Monitor *mn, Paxos *p, const string& service_name) - : PaxosService(mn, p, service_name) { } - - void init() override { - generic_dout(10) << "LogMonitor::init" << dendl; - g_conf->add_observer(this); - update_log_channels(); - } - - void tick() override; // check state, take actions - - void check_subs(); - void check_sub(Subscription *s); - - /** - * translate log sub name ('log-info') to integer id - * - * @param n name - * @return id, or -1 if unrecognized - */ - int sub_name_to_id(const string& n); - - void on_shutdown() override { - g_conf->remove_observer(this); - } - - const char **get_tracked_conf_keys() const override { - static const char* KEYS[] = { - "mon_cluster_log_to_syslog", - "mon_cluster_log_to_syslog_level", - "mon_cluster_log_to_syslog_facility", - "mon_cluster_log_file", - "mon_cluster_log_file_level", - "mon_cluster_log_to_graylog", - "mon_cluster_log_to_graylog_host", - "mon_cluster_log_to_graylog_port", - NULL - }; - return KEYS; - } - void handle_conf_change(const struct md_config_t *conf, - const std::set &changed) override; -}; -#endif