diff options
Diffstat (limited to 'logd/src/logd/metrics.h')
-rw-r--r-- | logd/src/logd/metrics.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/logd/src/logd/metrics.h b/logd/src/logd/metrics.h new file mode 100644 index 00000000000..860632b3031 --- /dev/null +++ b/logd/src/logd/metrics.h @@ -0,0 +1,36 @@ +// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#pragma once + +#include <vespa/vespalib/metrics/metrics_manager.h> + +namespace logdemon { + +using vespalib::metrics::Dimension; +using vespalib::metrics::Counter; +using vespalib::metrics::MetricsManager; +using vespalib::metrics::Point; + +struct Metrics { + MetricsManager &metrics; + const Dimension loglevel; + const Dimension servicename; + const Counter loglines; + + Metrics(MetricsManager &m) + : metrics(m), + loglevel(m.dimension("loglevel")), + servicename(m.dimension("servicename")), + loglines(m.counter("loglines")) + {} + + void countLine(const vespalib::string &level, + const vespalib::string &service) const + { + Point p = metrics.pointBuilder() + .bind(loglevel, level) + .bind(servicename, service); + loglines.add(1, p); + } +}; + +} // namespace logdemon |