Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Socket
Sign inDemoInstall

@neo-one/monitor

Package Overview
Dependencies
Maintainers
1
Versions
71
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@neo-one/monitor - npm Package Compare versions

Comparing version 1.0.0-alpha.11 to 1.0.0-alpha.12

261

dist/index.browser.es.js

@@ -142,2 +142,22 @@ import { Tracer, childOf, followsFrom } from 'opentracing';

function _toConsumableArray(arr) {
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();
}
function _arrayWithoutHoles(arr) {
if (Array.isArray(arr)) {
for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
return arr2;
}
}
function _iterableToArray(iter) {
if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
}
function _nonIterableSpread() {
throw new TypeError("Invalid attempt to spread non-iterable instance");
}
var createTracer = (function (tracerIn) {

@@ -208,3 +228,3 @@ var tracer = tracerIn || new Tracer();

SPAN_KIND: 'span.kind',
DB_STATEMENT_SUMMARY: 'db.statement.summary',
DB_STATEMENT_SUMMARY: 'db.statement_summary',
HTTP_PATH: 'http.path',

@@ -229,2 +249,18 @@ HTTP_FULLPATH: 'http.full_path',

};
var convertMetricLabels = function convertMetricLabels(labelsIn) {
if (labelsIn == null) {
return {};
}
var labels = {};
var _arr = Object.keys(labelsIn);
for (var _i = 0; _i < _arr.length; _i++) {
var key = _arr[_i];
labels[convertMetricLabel(key)] = labelsIn[key];
}
return labels;
};
var convertTagLabel = function convertTagLabel(dotLabel) {

@@ -351,17 +387,72 @@ return dotLabel;

var MetricWrapper =
/*#__PURE__*/
function () {
function MetricWrapper(_ref3) {
var metric = _ref3.metric,
labels = _ref3.labels;
_classCallCheck(this, MetricWrapper);
this._metric = metric;
this._labels = convertMetricLabels(labels);
}
_createClass(MetricWrapper, [{
key: "_getArgs",
value: function _getArgs(valueOrLabels, value) {
if (valueOrLabels == null || typeof valueOrLabels === 'number') {
return [_objectSpread({}, this._labels), valueOrLabels];
}
return [_objectSpread({}, this._labels, convertMetricLabels(valueOrLabels)), value];
}
}, {
key: "inc",
value: function inc(countOrLabels, count) {
var _ref4;
(_ref4 = this._metric).inc.apply(_ref4, _toConsumableArray(this._getArgs(countOrLabels, count)));
}
}, {
key: "dec",
value: function dec(countOrLabels, count) {
var _ref5;
(_ref5 = this._metric).dec.apply(_ref5, _toConsumableArray(this._getArgs(countOrLabels, count)));
}
}, {
key: "set",
value: function set(countOrLabels, count) {
var _ref6;
(_ref6 = this._metric).set.apply(_ref6, _toConsumableArray(this._getArgs(countOrLabels, count)));
}
}, {
key: "observe",
value: function observe(countOrLabels, count) {
var _ref7;
(_ref7 = this._metric).observe.apply(_ref7, _toConsumableArray(this._getArgs(countOrLabels, count)));
}
}]);
return MetricWrapper;
}();
var MonitorBase =
/*#__PURE__*/
function () {
function MonitorBase(_ref3) {
var service = _ref3.service,
component = _ref3.component,
labels = _ref3.labels,
data = _ref3.data,
logger = _ref3.logger,
metricsLogLevel = _ref3.metricsLogLevel,
spanLogLevel = _ref3.spanLogLevel,
tracer = _ref3.tracer,
now = _ref3.now,
span = _ref3.span,
metricsFactory = _ref3.metricsFactory;
function MonitorBase(_ref8) {
var service = _ref8.service,
component = _ref8.component,
labels = _ref8.labels,
data = _ref8.data,
logger = _ref8.logger,
metricsLogLevel = _ref8.metricsLogLevel,
spanLogLevel = _ref8.spanLogLevel,
tracer = _ref8.tracer,
now = _ref8.now,
span = _ref8.span,
metricsFactory = _ref8.metricsFactory;

@@ -435,10 +526,10 @@ _classCallCheck(this, MonitorBase);

key: "log",
value: function log(_ref4) {
var name = _ref4.name,
message = _ref4.message,
level = _ref4.level,
help = _ref4.help,
metric = _ref4.metric,
labelNames = _ref4.labelNames,
error = _ref4.error;
value: function log(_ref9) {
var name = _ref9.name,
message = _ref9.message,
level = _ref9.level,
help = _ref9.help,
metric = _ref9.metric,
labelNames = _ref9.labelNames,
error = _ref9.error;

@@ -514,7 +605,7 @@ this._commonLog({

key: "logSingle",
value: function logSingle(_ref5) {
var name = _ref5.name,
message = _ref5.message,
level = _ref5.level,
error = _ref5.error;
value: function logSingle(_ref10) {
var name = _ref10.name,
message = _ref10.message,
level = _ref10.level,
error = _ref10.error;

@@ -580,10 +671,10 @@ this._commonLog({

key: "logError",
value: function logError(_ref6) {
var name = _ref6.name,
message = _ref6.message,
level = _ref6.level,
help = _ref6.help,
metric = _ref6.metric,
labelNames = _ref6.labelNames,
error = _ref6.error;
value: function logError(_ref11) {
var name = _ref11.name,
message = _ref11.message,
level = _ref11.level,
help = _ref11.help,
metric = _ref11.metric,
labelNames = _ref11.labelNames,
error = _ref11.error;
var errorLevel = level;

@@ -616,7 +707,7 @@

key: "logErrorSingle",
value: function logErrorSingle(_ref7) {
var name = _ref7.name,
message = _ref7.message,
level = _ref7.level,
error = _ref7.error;
value: function logErrorSingle(_ref12) {
var name = _ref12.name,
message = _ref12.message,
level = _ref12.level,
error = _ref12.error;
var errorLevel = level;

@@ -650,3 +741,3 @@

return counters[name];
return this._getMetricWrapper(counters[name], options);
}

@@ -662,3 +753,3 @@ }, {

return gauges[name];
return this._getMetricWrapper(gauges[name], options);
}

@@ -674,3 +765,3 @@ }, {

return histograms[name];
return this._getMetricWrapper(histograms[name], options);
}

@@ -686,14 +777,14 @@ }, {

return summaries[name];
return this._getMetricWrapper(summaries[name], options);
}
}, {
key: "startSpan",
value: function startSpan(_ref8) {
value: function startSpan(_ref13) {
var _this3 = this;
var name = _ref8.name,
level = _ref8.level,
help = _ref8.help,
labelNames = _ref8.labelNames,
referenceIn = _ref8.references;
var name = _ref13.name,
level = _ref13.level,
help = _ref13.help,
labelNames = _ref13.labelNames,
referenceIn = _ref13.references;
var span;

@@ -899,10 +990,10 @@ var references = (referenceIn || []).concat([this.childOf(this)]).map(function (reference) {

key: "_commonLog",
value: function _commonLog(_ref9) {
var name = _ref9.name,
messageIn = _ref9.message,
level = _ref9.level,
help = _ref9.help,
metric = _ref9.metric,
labelNamesIn = _ref9.labelNames,
error = _ref9.error;
value: function _commonLog(_ref14) {
var name = _ref14.name,
messageIn = _ref14.message,
level = _ref14.level,
help = _ref14.help,
metric = _ref14.metric,
labelNamesIn = _ref14.labelNames,
error = _ref14.error;
var labels = {};

@@ -983,4 +1074,4 @@ var message = messageIn;

var _ref10 = this._span || {},
tracerSpan = _ref10.span;
var _ref15 = this._span || {},
tracerSpan = _ref15.span;

@@ -1017,18 +1108,40 @@ if (LOG_LEVEL_TO_LEVEL[fullLevel.span] <= LOG_LEVEL_TO_LEVEL[this._spanLogLevel] && tracerSpan != null) {

key: "_getMetricConstruct",
value: function _getMetricConstruct(_ref11) {
var name = _ref11.name,
help = _ref11.help,
labelNamesIn = _ref11.labelNames;
var labelNames = (labelNamesIn || []).concat([this.labels.SERVICE, this.labels.COMPONENT]);
var labelNamesSet = new Set(labelNames);
value: function _getMetricConstruct(_ref16) {
var name = _ref16.name,
_ref16$help = _ref16.help,
help = _ref16$help === void 0 ? 'Placeholder' : _ref16$help,
labelNamesIn = _ref16.labelNames;
var labelNames = this._getMetricLabelNames(labelNamesIn).map(function (labelName) {
return convertMetricLabel(labelName);
});
return {
name: name,
help: help,
labelNames: labelNames,
labels: _.pickBy(this._labels, function (value, key) {
return labelNamesSet.has(key);
})
labelNames: labelNames
};
}
}, {
key: "_getMetricLabelNames",
value: function _getMetricLabelNames(labelNames) {
return (labelNames || []).concat([this.labels.SERVICE, this.labels.COMPONENT]);
}
}, {
key: "_getMetricWrapper",
value: function _getMetricWrapper(metric, options) {
var labelNames = this._getMetricLabelNames(options.labelNames);
var labelNamesSet = new Set(labelNames);
var labels = _.pickBy(this._labels, function (value, key) {
return labelNamesSet.has(key);
});
return new MetricWrapper({
metric: metric,
labels: labels
});
}
}, {
key: "_getAllRawLabels",

@@ -1099,7 +1212,7 @@ value: function _getAllRawLabels(labels) {

value: function _clone(options) {
var _ref12 = options || {},
component = _ref12.component,
mergeLabels = _ref12.mergeLabels,
mergeData = _ref12.mergeData,
span = _ref12.span;
var _ref17 = options || {},
component = _ref17.component,
mergeLabels = _ref17.mergeLabels,
mergeData = _ref17.mergeData,
span = _ref17.span;

@@ -1106,0 +1219,0 @@ var mergedLabels = this._labels;

@@ -148,2 +148,22 @@ 'use strict';

function _toConsumableArray(arr) {
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();
}
function _arrayWithoutHoles(arr) {
if (Array.isArray(arr)) {
for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
return arr2;
}
}
function _iterableToArray(iter) {
if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
}
function _nonIterableSpread() {
throw new TypeError("Invalid attempt to spread non-iterable instance");
}
var createTracer = (function (tracerIn) {

@@ -214,3 +234,3 @@ var tracer = tracerIn || new opentracing.Tracer();

SPAN_KIND: 'span.kind',
DB_STATEMENT_SUMMARY: 'db.statement.summary',
DB_STATEMENT_SUMMARY: 'db.statement_summary',
HTTP_PATH: 'http.path',

@@ -235,2 +255,18 @@ HTTP_FULLPATH: 'http.full_path',

};
var convertMetricLabels = function convertMetricLabels(labelsIn) {
if (labelsIn == null) {
return {};
}
var labels = {};
var _arr = Object.keys(labelsIn);
for (var _i = 0; _i < _arr.length; _i++) {
var key = _arr[_i];
labels[convertMetricLabel(key)] = labelsIn[key];
}
return labels;
};
var convertTagLabel = function convertTagLabel(dotLabel) {

@@ -357,17 +393,72 @@ return dotLabel;

var MetricWrapper =
/*#__PURE__*/
function () {
function MetricWrapper(_ref3) {
var metric = _ref3.metric,
labels = _ref3.labels;
_classCallCheck(this, MetricWrapper);
this._metric = metric;
this._labels = convertMetricLabels(labels);
}
_createClass(MetricWrapper, [{
key: "_getArgs",
value: function _getArgs(valueOrLabels, value) {
if (valueOrLabels == null || typeof valueOrLabels === 'number') {
return [_objectSpread({}, this._labels), valueOrLabels];
}
return [_objectSpread({}, this._labels, convertMetricLabels(valueOrLabels)), value];
}
}, {
key: "inc",
value: function inc(countOrLabels, count) {
var _ref4;
(_ref4 = this._metric).inc.apply(_ref4, _toConsumableArray(this._getArgs(countOrLabels, count)));
}
}, {
key: "dec",
value: function dec(countOrLabels, count) {
var _ref5;
(_ref5 = this._metric).dec.apply(_ref5, _toConsumableArray(this._getArgs(countOrLabels, count)));
}
}, {
key: "set",
value: function set(countOrLabels, count) {
var _ref6;
(_ref6 = this._metric).set.apply(_ref6, _toConsumableArray(this._getArgs(countOrLabels, count)));
}
}, {
key: "observe",
value: function observe(countOrLabels, count) {
var _ref7;
(_ref7 = this._metric).observe.apply(_ref7, _toConsumableArray(this._getArgs(countOrLabels, count)));
}
}]);
return MetricWrapper;
}();
var MonitorBase =
/*#__PURE__*/
function () {
function MonitorBase(_ref3) {
var service = _ref3.service,
component = _ref3.component,
labels = _ref3.labels,
data = _ref3.data,
logger = _ref3.logger,
metricsLogLevel = _ref3.metricsLogLevel,
spanLogLevel = _ref3.spanLogLevel,
tracer = _ref3.tracer,
now = _ref3.now,
span = _ref3.span,
metricsFactory = _ref3.metricsFactory;
function MonitorBase(_ref8) {
var service = _ref8.service,
component = _ref8.component,
labels = _ref8.labels,
data = _ref8.data,
logger = _ref8.logger,
metricsLogLevel = _ref8.metricsLogLevel,
spanLogLevel = _ref8.spanLogLevel,
tracer = _ref8.tracer,
now = _ref8.now,
span = _ref8.span,
metricsFactory = _ref8.metricsFactory;

@@ -441,10 +532,10 @@ _classCallCheck(this, MonitorBase);

key: "log",
value: function log(_ref4) {
var name = _ref4.name,
message = _ref4.message,
level = _ref4.level,
help = _ref4.help,
metric = _ref4.metric,
labelNames = _ref4.labelNames,
error = _ref4.error;
value: function log(_ref9) {
var name = _ref9.name,
message = _ref9.message,
level = _ref9.level,
help = _ref9.help,
metric = _ref9.metric,
labelNames = _ref9.labelNames,
error = _ref9.error;

@@ -520,7 +611,7 @@ this._commonLog({

key: "logSingle",
value: function logSingle(_ref5) {
var name = _ref5.name,
message = _ref5.message,
level = _ref5.level,
error = _ref5.error;
value: function logSingle(_ref10) {
var name = _ref10.name,
message = _ref10.message,
level = _ref10.level,
error = _ref10.error;

@@ -586,10 +677,10 @@ this._commonLog({

key: "logError",
value: function logError(_ref6) {
var name = _ref6.name,
message = _ref6.message,
level = _ref6.level,
help = _ref6.help,
metric = _ref6.metric,
labelNames = _ref6.labelNames,
error = _ref6.error;
value: function logError(_ref11) {
var name = _ref11.name,
message = _ref11.message,
level = _ref11.level,
help = _ref11.help,
metric = _ref11.metric,
labelNames = _ref11.labelNames,
error = _ref11.error;
var errorLevel = level;

@@ -622,7 +713,7 @@

key: "logErrorSingle",
value: function logErrorSingle(_ref7) {
var name = _ref7.name,
message = _ref7.message,
level = _ref7.level,
error = _ref7.error;
value: function logErrorSingle(_ref12) {
var name = _ref12.name,
message = _ref12.message,
level = _ref12.level,
error = _ref12.error;
var errorLevel = level;

@@ -656,3 +747,3 @@

return counters[name];
return this._getMetricWrapper(counters[name], options);
}

@@ -668,3 +759,3 @@ }, {

return gauges[name];
return this._getMetricWrapper(gauges[name], options);
}

@@ -680,3 +771,3 @@ }, {

return histograms[name];
return this._getMetricWrapper(histograms[name], options);
}

@@ -692,14 +783,14 @@ }, {

return summaries[name];
return this._getMetricWrapper(summaries[name], options);
}
}, {
key: "startSpan",
value: function startSpan(_ref8) {
value: function startSpan(_ref13) {
var _this3 = this;
var name = _ref8.name,
level = _ref8.level,
help = _ref8.help,
labelNames = _ref8.labelNames,
referenceIn = _ref8.references;
var name = _ref13.name,
level = _ref13.level,
help = _ref13.help,
labelNames = _ref13.labelNames,
referenceIn = _ref13.references;
var span;

@@ -905,10 +996,10 @@ var references = (referenceIn || []).concat([this.childOf(this)]).map(function (reference) {

key: "_commonLog",
value: function _commonLog(_ref9) {
var name = _ref9.name,
messageIn = _ref9.message,
level = _ref9.level,
help = _ref9.help,
metric = _ref9.metric,
labelNamesIn = _ref9.labelNames,
error = _ref9.error;
value: function _commonLog(_ref14) {
var name = _ref14.name,
messageIn = _ref14.message,
level = _ref14.level,
help = _ref14.help,
metric = _ref14.metric,
labelNamesIn = _ref14.labelNames,
error = _ref14.error;
var labels = {};

@@ -989,4 +1080,4 @@ var message = messageIn;

var _ref10 = this._span || {},
tracerSpan = _ref10.span;
var _ref15 = this._span || {},
tracerSpan = _ref15.span;

@@ -1023,18 +1114,40 @@ if (LOG_LEVEL_TO_LEVEL[fullLevel.span] <= LOG_LEVEL_TO_LEVEL[this._spanLogLevel] && tracerSpan != null) {

key: "_getMetricConstruct",
value: function _getMetricConstruct(_ref11) {
var name = _ref11.name,
help = _ref11.help,
labelNamesIn = _ref11.labelNames;
var labelNames = (labelNamesIn || []).concat([this.labels.SERVICE, this.labels.COMPONENT]);
var labelNamesSet = new Set(labelNames);
value: function _getMetricConstruct(_ref16) {
var name = _ref16.name,
_ref16$help = _ref16.help,
help = _ref16$help === void 0 ? 'Placeholder' : _ref16$help,
labelNamesIn = _ref16.labelNames;
var labelNames = this._getMetricLabelNames(labelNamesIn).map(function (labelName) {
return convertMetricLabel(labelName);
});
return {
name: name,
help: help,
labelNames: labelNames,
labels: _.pickBy(this._labels, function (value, key) {
return labelNamesSet.has(key);
})
labelNames: labelNames
};
}
}, {
key: "_getMetricLabelNames",
value: function _getMetricLabelNames(labelNames) {
return (labelNames || []).concat([this.labels.SERVICE, this.labels.COMPONENT]);
}
}, {
key: "_getMetricWrapper",
value: function _getMetricWrapper(metric, options) {
var labelNames = this._getMetricLabelNames(options.labelNames);
var labelNamesSet = new Set(labelNames);
var labels = _.pickBy(this._labels, function (value, key) {
return labelNamesSet.has(key);
});
return new MetricWrapper({
metric: metric,
labels: labels
});
}
}, {
key: "_getAllRawLabels",

@@ -1105,7 +1218,7 @@ value: function _getAllRawLabels(labels) {

value: function _clone(options) {
var _ref12 = options || {},
component = _ref12.component,
mergeLabels = _ref12.mergeLabels,
mergeData = _ref12.mergeData,
span = _ref12.span;
var _ref17 = options || {},
component = _ref17.component,
mergeLabels = _ref17.mergeLabels,
mergeData = _ref17.mergeData,
span = _ref17.span;

@@ -1112,0 +1225,0 @@ var mergedLabels = this._labels;

@@ -98,3 +98,3 @@ import { Tracer, childOf, followsFrom } from 'opentracing';

SPAN_KIND: 'span.kind',
DB_STATEMENT_SUMMARY: 'db.statement.summary',
DB_STATEMENT_SUMMARY: 'db.statement_summary',
HTTP_PATH: 'http.path',

@@ -211,2 +211,37 @@ HTTP_FULLPATH: 'http.full_path',

class MetricWrapper {
constructor({
metric,
labels
}) {
this._metric = metric;
this._labels = convertMetricLabels(labels);
}
_getArgs(valueOrLabels, value) {
if (valueOrLabels == null || typeof valueOrLabels === 'number') {
return [_objectSpread({}, this._labels), valueOrLabels];
}
return [_objectSpread({}, this._labels, convertMetricLabels(valueOrLabels)), value];
}
inc(countOrLabels, count) {
this._metric.inc(...this._getArgs(countOrLabels, count));
}
dec(countOrLabels, count) {
this._metric.dec(...this._getArgs(countOrLabels, count));
}
set(countOrLabels, count) {
this._metric.set(...this._getArgs(countOrLabels, count));
}
observe(countOrLabels, count) {
this._metric.observe(...this._getArgs(countOrLabels, count));
}
}
class MonitorBase {

@@ -492,3 +527,3 @@ constructor({

return counters[name];
return this._getMetricWrapper(counters[name], options);
}

@@ -505,3 +540,3 @@

return gauges[name];
return this._getMetricWrapper(gauges[name], options);
}

@@ -518,3 +553,3 @@

return histograms[name];
return this._getMetricWrapper(histograms[name], options);
}

@@ -531,3 +566,3 @@

return summaries[name];
return this._getMetricWrapper(summaries[name], options);
}

@@ -853,15 +888,31 @@

name,
help,
help = 'Placeholder',
labelNames: labelNamesIn
}) {
const labelNames = (labelNamesIn || []).concat([this.labels.SERVICE, this.labels.COMPONENT]);
const labelNamesSet = new Set(labelNames);
const labelNames = this._getMetricLabelNames(labelNamesIn).map(labelName => convertMetricLabel(labelName));
return {
name,
help,
labelNames,
labels: _.pickBy(this._labels, (value, key) => labelNamesSet.has(key))
labelNames
};
}
_getMetricLabelNames(labelNames) {
return (labelNames || []).concat([this.labels.SERVICE, this.labels.COMPONENT]);
}
_getMetricWrapper(metric, options) {
const labelNames = this._getMetricLabelNames(options.labelNames);
const labelNamesSet = new Set(labelNames);
const labels = _.pickBy(this._labels, (value, key) => labelNamesSet.has(key));
return new MetricWrapper({
metric,
labels
});
}
_getAllRawLabels(labels) {

@@ -969,106 +1020,17 @@ if (labels == null) {

class BaseMetric {
constructor({
name,
help,
labelNames,
labels
}) {
this._metric = new this.constructor.MetricClass({
name,
help: help == null ? 'Placeholder' : help,
labelNames: (labelNames || []).map(labelName => convertMetricLabel(labelName))
});
this._labels = labels;
}
_getArgs(valueOrLabels, value) {
if (valueOrLabels == null || typeof valueOrLabels === 'number') {
return [convertMetricLabels(this._labels), valueOrLabels];
}
return [convertMetricLabels(_objectSpread({}, this._labels, valueOrLabels)), value];
}
}
class NodeCounter extends BaseMetric {
inc(countOrLabels, count) {
this._metric.inc(...this._getArgs(countOrLabels, count));
}
}
Object.defineProperty(NodeCounter, "MetricClass", {
configurable: true,
enumerable: true,
writable: true,
value: prom.Counter
});
class NodeGauge extends BaseMetric {
inc(countOrLabels, count) {
this._metric.inc(...this._getArgs(countOrLabels, count));
}
dec(countOrLabels, count) {
this._metric.dec(...this._getArgs(countOrLabels, count));
}
set(countOrLabels, count) {
this._metric.set(...this._getArgs(countOrLabels, count));
}
}
Object.defineProperty(NodeGauge, "MetricClass", {
configurable: true,
enumerable: true,
writable: true,
value: prom.Gauge
});
class NodeHistogram extends BaseMetric {
observe(countOrLabels, count) {
this._metric.observe(...this._getArgs(countOrLabels, count));
}
}
Object.defineProperty(NodeHistogram, "MetricClass", {
configurable: true,
enumerable: true,
writable: true,
value: prom.Histogram
});
class NodeSummary extends BaseMetric {
observe(countOrLabels, count) {
this._metric.observe(...this._getArgs(countOrLabels, count));
}
}
Object.defineProperty(NodeSummary, "MetricClass", {
configurable: true,
enumerable: true,
writable: true,
value: prom.Summary
});
class NodeMetricsFactory {
createCounter(options) {
return new NodeCounter(options);
return new prom.Counter(options);
}
createGauge(options) {
return new NodeGauge(options);
return new prom.Gauge(options);
}
createHistogram(options) {
return new NodeHistogram(options);
return new prom.Histogram(options);
}
createSummary(options) {
return new NodeSummary(options);
return new prom.Summary(options);
}

@@ -1075,0 +1037,0 @@

@@ -104,3 +104,3 @@ 'use strict';

SPAN_KIND: 'span.kind',
DB_STATEMENT_SUMMARY: 'db.statement.summary',
DB_STATEMENT_SUMMARY: 'db.statement_summary',
HTTP_PATH: 'http.path',

@@ -217,2 +217,37 @@ HTTP_FULLPATH: 'http.full_path',

class MetricWrapper {
constructor({
metric,
labels
}) {
this._metric = metric;
this._labels = convertMetricLabels(labels);
}
_getArgs(valueOrLabels, value) {
if (valueOrLabels == null || typeof valueOrLabels === 'number') {
return [_objectSpread({}, this._labels), valueOrLabels];
}
return [_objectSpread({}, this._labels, convertMetricLabels(valueOrLabels)), value];
}
inc(countOrLabels, count) {
this._metric.inc(...this._getArgs(countOrLabels, count));
}
dec(countOrLabels, count) {
this._metric.dec(...this._getArgs(countOrLabels, count));
}
set(countOrLabels, count) {
this._metric.set(...this._getArgs(countOrLabels, count));
}
observe(countOrLabels, count) {
this._metric.observe(...this._getArgs(countOrLabels, count));
}
}
class MonitorBase {

@@ -498,3 +533,3 @@ constructor({

return counters[name];
return this._getMetricWrapper(counters[name], options);
}

@@ -511,3 +546,3 @@

return gauges[name];
return this._getMetricWrapper(gauges[name], options);
}

@@ -524,3 +559,3 @@

return histograms[name];
return this._getMetricWrapper(histograms[name], options);
}

@@ -537,3 +572,3 @@

return summaries[name];
return this._getMetricWrapper(summaries[name], options);
}

@@ -859,15 +894,31 @@

name,
help,
help = 'Placeholder',
labelNames: labelNamesIn
}) {
const labelNames = (labelNamesIn || []).concat([this.labels.SERVICE, this.labels.COMPONENT]);
const labelNamesSet = new Set(labelNames);
const labelNames = this._getMetricLabelNames(labelNamesIn).map(labelName => convertMetricLabel(labelName));
return {
name,
help,
labelNames,
labels: _.pickBy(this._labels, (value, key) => labelNamesSet.has(key))
labelNames
};
}
_getMetricLabelNames(labelNames) {
return (labelNames || []).concat([this.labels.SERVICE, this.labels.COMPONENT]);
}
_getMetricWrapper(metric, options) {
const labelNames = this._getMetricLabelNames(options.labelNames);
const labelNamesSet = new Set(labelNames);
const labels = _.pickBy(this._labels, (value, key) => labelNamesSet.has(key));
return new MetricWrapper({
metric,
labels
});
}
_getAllRawLabels(labels) {

@@ -975,106 +1026,17 @@ if (labels == null) {

class BaseMetric {
constructor({
name,
help,
labelNames,
labels
}) {
this._metric = new this.constructor.MetricClass({
name,
help: help == null ? 'Placeholder' : help,
labelNames: (labelNames || []).map(labelName => convertMetricLabel(labelName))
});
this._labels = labels;
}
_getArgs(valueOrLabels, value) {
if (valueOrLabels == null || typeof valueOrLabels === 'number') {
return [convertMetricLabels(this._labels), valueOrLabels];
}
return [convertMetricLabels(_objectSpread({}, this._labels, valueOrLabels)), value];
}
}
class NodeCounter extends BaseMetric {
inc(countOrLabels, count) {
this._metric.inc(...this._getArgs(countOrLabels, count));
}
}
Object.defineProperty(NodeCounter, "MetricClass", {
configurable: true,
enumerable: true,
writable: true,
value: prom.Counter
});
class NodeGauge extends BaseMetric {
inc(countOrLabels, count) {
this._metric.inc(...this._getArgs(countOrLabels, count));
}
dec(countOrLabels, count) {
this._metric.dec(...this._getArgs(countOrLabels, count));
}
set(countOrLabels, count) {
this._metric.set(...this._getArgs(countOrLabels, count));
}
}
Object.defineProperty(NodeGauge, "MetricClass", {
configurable: true,
enumerable: true,
writable: true,
value: prom.Gauge
});
class NodeHistogram extends BaseMetric {
observe(countOrLabels, count) {
this._metric.observe(...this._getArgs(countOrLabels, count));
}
}
Object.defineProperty(NodeHistogram, "MetricClass", {
configurable: true,
enumerable: true,
writable: true,
value: prom.Histogram
});
class NodeSummary extends BaseMetric {
observe(countOrLabels, count) {
this._metric.observe(...this._getArgs(countOrLabels, count));
}
}
Object.defineProperty(NodeSummary, "MetricClass", {
configurable: true,
enumerable: true,
writable: true,
value: prom.Summary
});
class NodeMetricsFactory {
createCounter(options) {
return new NodeCounter(options);
return new prom.Counter(options);
}
createGauge(options) {
return new NodeGauge(options);
return new prom.Gauge(options);
}
createHistogram(options) {
return new NodeHistogram(options);
return new prom.Histogram(options);
}
createSummary(options) {
return new NodeSummary(options);
return new prom.Summary(options);
}

@@ -1081,0 +1043,0 @@

{
"name": "@neo-one/monitor",
"version": "1.0.0-alpha.11",
"version": "1.0.0-alpha.12",
"keywords": [

@@ -5,0 +5,0 @@ "neo",

@@ -6,4 +6,4 @@ /* @flow */

type MetricConstruct,
type MetricLabels,
type MetricsFactory,
type RawLabels,
type Tracer,

@@ -19,3 +19,3 @@ } from './MonitorBase';

// eslint-disable-next-line
inc(countOrLabels?: number | RawLabels, count?: number): void {}
inc(countOrLabels?: number | MetricLabels, count?: number): void {}
}

@@ -25,9 +25,9 @@

// eslint-disable-next-line
inc(countOrLabels?: number | RawLabels, count?: number): void {}
inc(countOrLabels?: number | MetricLabels, count?: number): void {}
// eslint-disable-next-line
dec(countOrLabels?: number | RawLabels, count?: number): void {}
dec(countOrLabels?: number | MetricLabels, count?: number): void {}
// eslint-disable-next-line
set(countOrLabels?: number | RawLabels, count?: number): void {}
set(countOrLabels?: number | MetricLabels, count?: number): void {}
}

@@ -37,3 +37,3 @@

// eslint-disable-next-line
observe(countOrLabels?: number | RawLabels, count?: number): void {}
observe(countOrLabels?: number | MetricLabels, count?: number): void {}
}

@@ -43,3 +43,3 @@

// eslint-disable-next-line
observe(countOrLabels?: number | RawLabels, count?: number): void {}
observe(countOrLabels?: number | MetricLabels, count?: number): void {}
}

@@ -46,0 +46,0 @@

@@ -93,4 +93,5 @@ /* @flow */

export type MetricConstruct = {|
...MetricOptions,
labels: Labels,
name: string,
help: string,
labelNames: Array<string>,
|};

@@ -150,3 +151,3 @@

DB_STATEMENT_SUMMARY: 'db.statement.summary',
DB_STATEMENT_SUMMARY: 'db.statement_summary',
HTTP_PATH: 'http.path',

@@ -252,2 +253,53 @@ HTTP_FULLPATH: 'http.full_path',

class MetricWrapper {
_metric: Counter | Gauge | Histogram | Summary;
_labels: MetricLabels;
constructor({
metric,
labels,
}: {|
metric: Counter | Gauge | Histogram | Summary,
labels: RawLabels,
|}) {
this._metric = metric;
this._labels = convertMetricLabels(labels);
}
_getArgs(
valueOrLabels?: RawLabels | number,
value?: number,
): [MetricLabels, number | void] {
if (valueOrLabels == null || typeof valueOrLabels === 'number') {
return [{ ...this._labels }, valueOrLabels];
}
return [{ ...this._labels, ...convertMetricLabels(valueOrLabels) }, value];
}
inc(countOrLabels?: number | RawLabels, count?: number): void {
((this._metric: $FlowFixMe): Counter | Gauge).inc(
...this._getArgs(countOrLabels, count),
);
}
dec(countOrLabels?: number | RawLabels, count?: number): void {
((this._metric: $FlowFixMe): Gauge).dec(
...this._getArgs(countOrLabels, count),
);
}
set(countOrLabels?: number | RawLabels, count?: number): void {
((this._metric: $FlowFixMe): Gauge).set(
...(this._getArgs(countOrLabels, count): $FlowFixMe),
);
}
observe(countOrLabels?: number | RawLabels, count?: number): void {
((this._metric: $FlowFixMe): Histogram | Summary).observe(
...(this._getArgs(countOrLabels, count): $FlowFixMe),
);
}
}
type CommonLogOptions = {|

@@ -529,3 +581,3 @@ name: string,

return counters[name];
return this._getMetricWrapper(counters[name], options);
}

@@ -541,3 +593,3 @@

return gauges[name];
return this._getMetricWrapper(gauges[name], options);
}

@@ -553,3 +605,3 @@

return histograms[name];
return this._getMetricWrapper(histograms[name], options);
}

@@ -565,3 +617,3 @@

return summaries[name];
return this._getMetricWrapper(summaries[name], options);
}

@@ -887,18 +939,29 @@

name,
help,
help = 'Placeholder',
labelNames: labelNamesIn,
}: MetricOptions): MetricConstruct {
const labelNames = (labelNamesIn || []).concat([
const labelNames = this._getMetricLabelNames(labelNamesIn).map(labelName =>
convertMetricLabel(labelName),
);
return { name, help, labelNames };
}
_getMetricLabelNames(labelNames?: Array<string>): Array<string> {
return (labelNames || []).concat([
this.labels.SERVICE,
this.labels.COMPONENT,
]);
}
_getMetricWrapper(
metric: Counter | Gauge | Histogram | Summary,
options: MetricOptions,
): Counter & Gauge & Histogram & Summary {
const labelNames = this._getMetricLabelNames(options.labelNames);
const labelNamesSet = new Set(labelNames);
return {
name,
help,
labelNames,
labels: _.pickBy(this._labels, (value, key: string) =>
labelNamesSet.has(key),
),
};
const labels = _.pickBy(this._labels, (value, key: string) =>
labelNamesSet.has(key),
);
return new MetricWrapper({ metric, labels });
}

@@ -905,0 +968,0 @@

@@ -21,93 +21,21 @@ /* @flow */

type MetricConstruct,
type MetricLabels,
type MetricsFactory,
type RawLabels,
type Tracer,
convertMetricLabel,
convertMetricLabels,
} from './MonitorBase';
class BaseMetric<TMetric: Object> {
static MetricClass: Class<TMetric>;
_metric: TMetric;
_labels: RawLabels;
constructor({ name, help, labelNames, labels }: MetricConstruct) {
this._metric = new this.constructor.MetricClass({
name,
help: help == null ? 'Placeholder' : help,
labelNames: (labelNames || []).map(labelName =>
convertMetricLabel(labelName),
),
});
this._labels = labels;
}
_getArgs(
valueOrLabels?: RawLabels | number,
value?: number,
): [MetricLabels, number | void] {
if (valueOrLabels == null || typeof valueOrLabels === 'number') {
return [convertMetricLabels(this._labels), valueOrLabels];
}
return [convertMetricLabels({ ...this._labels, ...valueOrLabels }), value];
}
}
class NodeCounter extends BaseMetric<prom.Counter> implements Counter {
static MetricClass = prom.Counter;
inc(countOrLabels?: number | RawLabels, count?: number): void {
this._metric.inc(...this._getArgs(countOrLabels, count));
}
}
class NodeGauge extends BaseMetric<prom.Gauge> implements Gauge {
static MetricClass = prom.Gauge;
inc(countOrLabels?: number | RawLabels, count?: number): void {
this._metric.inc(...this._getArgs(countOrLabels, count));
}
dec(countOrLabels?: number | RawLabels, count?: number): void {
this._metric.dec(...this._getArgs(countOrLabels, count));
}
set(countOrLabels?: number | RawLabels, count?: number): void {
this._metric.set(...this._getArgs(countOrLabels, count));
}
}
class NodeHistogram extends BaseMetric<prom.Histogram> implements Histogram {
static MetricClass = prom.Histogram;
observe(countOrLabels?: number | RawLabels, count?: number): void {
this._metric.observe(...this._getArgs(countOrLabels, count));
}
}
class NodeSummary extends BaseMetric<prom.Summary> implements Summary {
static MetricClass = prom.Summary;
observe(countOrLabels?: number | RawLabels, count?: number): void {
this._metric.observe(...this._getArgs(countOrLabels, count));
}
}
class NodeMetricsFactory implements MetricsFactory {
createCounter(options: MetricConstruct): Counter {
return new NodeCounter(options);
return new prom.Counter(options);
}
createGauge(options: MetricConstruct): Gauge {
return new NodeGauge(options);
return new prom.Gauge(options);
}
createHistogram(options: MetricConstruct): Histogram {
return new NodeHistogram(options);
return new prom.Histogram(options);
}
createSummary(options: MetricConstruct): Summary {
return new NodeSummary(options);
return new prom.Summary(options);
}

@@ -114,0 +42,0 @@ }

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc