From d7a94bae9ca3bb239f1dce6291924796bf86faae Mon Sep 17 00:00:00 2001 From: Trevor Johnston Date: Thu, 17 Jan 2019 16:19:09 -0500 Subject: [PATCH 1/5] remove trailing comma to fix formatting --- src/shadowbox/server/shared_metrics.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/shadowbox/server/shared_metrics.ts b/src/shadowbox/server/shared_metrics.ts index e0a146ec..0d72b39a 100644 --- a/src/shadowbox/server/shared_metrics.ts +++ b/src/shadowbox/server/shared_metrics.ts @@ -153,12 +153,10 @@ export class OutlineSharedMetricsPublisher implements SharedMetricsPublisher { // toMetricsId: maps Access key ids to metric ids // metricsUrl: where to post the metrics constructor( - private clock: Clock, - private serverConfig: JsonConfig, + private clock: Clock, private serverConfig: JsonConfig, usageMetrics: UsageMetrics, private toMetricsId: (accessKeyId: AccessKeyId) => AccessKeyMetricsId, - private metricsCollector: MetricsCollectorClient, - ) { + private metricsCollector: MetricsCollectorClient) { // Start timer this.reportStartTimestampMs = this.clock.now(); From 288f45c6d2aca346b87893f9bdb1209940b6178b Mon Sep 17 00:00:00 2001 From: Trevor Johnston Date: Thu, 17 Jan 2019 16:19:49 -0500 Subject: [PATCH 2/5] fix confusing comment --- src/shadowbox/server/shared_metrics.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shadowbox/server/shared_metrics.ts b/src/shadowbox/server/shared_metrics.ts index 0d72b39a..4fc8b536 100644 --- a/src/shadowbox/server/shared_metrics.ts +++ b/src/shadowbox/server/shared_metrics.ts @@ -66,7 +66,7 @@ export interface UsageMetricsWriter { writeBytesTransferred(accessKeyId: AccessKeyId, numBytes: number, countries: string[]); } -// Writes usage metrics to Prometheus. +// Reads data usage metrics from Prometheus. export class PrometheusUsageMetrics implements UsageMetrics { private resetTimeMs: number = Date.now(); From f11ede88b63004f984e91b2d85636ad03c67638e Mon Sep 17 00:00:00 2001 From: Trevor Johnston Date: Thu, 17 Jan 2019 16:26:06 -0500 Subject: [PATCH 3/5] remove unused function and interface --- src/shadowbox/server/shared_metrics.ts | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/src/shadowbox/server/shared_metrics.ts b/src/shadowbox/server/shared_metrics.ts index 4fc8b536..9eb93fa8 100644 --- a/src/shadowbox/server/shared_metrics.ts +++ b/src/shadowbox/server/shared_metrics.ts @@ -62,10 +62,6 @@ export interface UsageMetrics { reset(); } -export interface UsageMetricsWriter { - writeBytesTransferred(accessKeyId: AccessKeyId, numBytes: number, countries: string[]); -} - // Reads data usage metrics from Prometheus. export class PrometheusUsageMetrics implements UsageMetrics { private resetTimeMs: number = Date.now(); @@ -98,21 +94,6 @@ export class PrometheusUsageMetrics implements UsageMetrics { } } -export function createPrometheusUsageMetricsWriter(registry: prometheus.Registry): - UsageMetricsWriter { - const usageCounter = new prometheus.Counter({ - name: 'shadowsocks_data_bytes', - help: 'Bytes transferred by the proxy', - labelNames: ['dir', 'proto', 'location', 'status', 'access_key'] - }); - registry.registerMetric(usageCounter); - return { - writeBytesTransferred(accessKeyId: AccessKeyId, inboundBytes: number, countries: string[]) { - usageCounter.labels('>p<', '', countries.join(','), '', accessKeyId).inc(inboundBytes); - } - }; -} - export interface MetricsCollectorClient { collectMetrics(reportJson: HourlyServerMetricsReportJson): Promise; } From bcc9fd60b1fed0b9b4aacec432894d13e39f2a19 Mon Sep 17 00:00:00 2001 From: Trevor Johnston Date: Thu, 17 Jan 2019 16:27:04 -0500 Subject: [PATCH 4/5] remove unused import --- src/shadowbox/server/shared_metrics.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/shadowbox/server/shared_metrics.ts b/src/shadowbox/server/shared_metrics.ts index 9eb93fa8..36a7ad04 100644 --- a/src/shadowbox/server/shared_metrics.ts +++ b/src/shadowbox/server/shared_metrics.ts @@ -13,8 +13,6 @@ // limitations under the License. -import * as prometheus from 'prom-client'; - import {Clock} from '../infrastructure/clock'; import * as follow_redirects from '../infrastructure/follow_redirects'; import {JsonConfig} from '../infrastructure/json_config'; From a7c2e1b9a3fbc76f609312833cdb572f5ac951e1 Mon Sep 17 00:00:00 2001 From: Trevor Johnston Date: Thu, 17 Jan 2019 16:31:09 -0500 Subject: [PATCH 5/5] remove pre-go server compatibility query param --- src/shadowbox/server/shared_metrics.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/shadowbox/server/shared_metrics.ts b/src/shadowbox/server/shared_metrics.ts index 36a7ad04..24659258 100644 --- a/src/shadowbox/server/shared_metrics.ts +++ b/src/shadowbox/server/shared_metrics.ts @@ -69,9 +69,8 @@ export class PrometheusUsageMetrics implements UsageMetrics { async getUsage(): Promise { const timeDeltaSecs = Math.round((Date.now() - this.resetTimeMs) / 1000); // We measure the traffic to and from the target, since that's what we are protecting. - // TODO: remove >p< once the ss-libev support is gone. - const result = await this.prometheusClient.query( - `sum(increase(shadowsocks_data_bytes{dir=~">p<|p>t|pt|p