@atomist/automation-client
Version:
Atomist API for software low-level client
67 lines • 2.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const HotShots = require("hot-shots");
const node_statsd_1 = require("node-statsd");
const os = require("os");
function defaultStatsDClientOptions(configuration) {
const options = {
prefix: "automation_client.",
globalTags: [
`atomist_name:${configuration.name.replace("@", "").replace("/", ".")}`,
`atomist_version:${configuration.version}`,
`atomist_environment:${configuration.environment}`,
`atomist_application_id:${configuration.application}`,
`atomist_process_id:${process.pid}`,
`atomist_host:${os.hostname()}`,
],
host: configuration.statsd.host || "localhost",
port: configuration.statsd.port || 8125,
};
return options;
}
exports.defaultStatsDClientOptions = defaultStatsDClientOptions;
class HotShotStatsDClientFactory {
create(clientOptions) {
const options = {
prefix: clientOptions.prefix,
host: clientOptions.host,
port: clientOptions.port,
globalTags: clientOptions.globalTags,
cacheDns: true,
};
return new HotShots.StatsD(options);
}
}
exports.HotShotStatsDClientFactory = HotShotStatsDClientFactory;
class NodeStatsDClientFactory {
create(clientOptions) {
const nodeStatsDClientOptions = {
host: clientOptions.host,
port: clientOptions.port,
prefix: clientOptions.prefix,
suffix: clientOptions.suffix,
global_tags: clientOptions.globalTags,
};
return new NodeStatsDClient(nodeStatsDClientOptions);
}
}
exports.NodeStatsDClientFactory = NodeStatsDClientFactory;
class NodeStatsDClient {
constructor(clientOptions) {
this.statsd = new node_statsd_1.StatsD(clientOptions);
}
increment(stat, value, sampleRate, tags, callback) {
this.statsd.increment(stat, value, sampleRate, tags, callback);
}
timing(stat, value, sampleRate, tags, callback) {
this.statsd.timing(stat, value, sampleRate, tags, callback);
}
gauge(stat, value, sampleRate, tags, callback) {
this.statsd.gauge(stat, value, sampleRate, tags, callback);
}
close(callback) {
this.statsd.close();
}
}
exports.DefaultStatsDClientFactory = new HotShotStatsDClientFactory();
//# sourceMappingURL=statsdClient.js.map