diff --git a/packages/opentelemetry-metrics/src/export/Batcher.ts b/packages/opentelemetry-metrics/src/export/Batcher.ts index 85ecbfb7fe3..bc4fee41e55 100644 --- a/packages/opentelemetry-metrics/src/export/Batcher.ts +++ b/packages/opentelemetry-metrics/src/export/Batcher.ts @@ -18,7 +18,7 @@ import { CounterSumAggregator, MeasureExactAggregator, ObserverAggregator, -} from './Aggregator'; +} from './aggregators'; import { MetricRecord, MetricKind, Aggregator } from './types'; /** diff --git a/packages/opentelemetry-metrics/src/export/aggregators/countersum.ts b/packages/opentelemetry-metrics/src/export/aggregators/countersum.ts new file mode 100644 index 00000000000..6b1fdc1ee98 --- /dev/null +++ b/packages/opentelemetry-metrics/src/export/aggregators/countersum.ts @@ -0,0 +1,37 @@ +/*! + * Copyright 2020, OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Aggregator, Point } from '../types'; +import { HrTime } from '@opentelemetry/api'; +import { hrTime } from '@opentelemetry/core'; + +/** Basic aggregator which calculates a Sum from individual measurements. */ +export class CounterSumAggregator implements Aggregator { + private _current: number = 0; + private _lastUpdateTime: HrTime = [0, 0]; + + update(value: number): void { + this._current += value; + this._lastUpdateTime = hrTime(); + } + + toPoint(): Point { + return { + value: this._current, + timestamp: this._lastUpdateTime, + }; + } +} diff --git a/packages/opentelemetry-metrics/src/export/aggregators/index.ts b/packages/opentelemetry-metrics/src/export/aggregators/index.ts new file mode 100644 index 00000000000..58f95e6008e --- /dev/null +++ b/packages/opentelemetry-metrics/src/export/aggregators/index.ts @@ -0,0 +1,19 @@ +/*! + * Copyright 2020, OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export * from './countersum'; +export * from './observer'; +export * from './measureexact'; \ No newline at end of file diff --git a/packages/opentelemetry-metrics/src/export/Aggregator.ts b/packages/opentelemetry-metrics/src/export/aggregators/measureexact.ts similarity index 61% rename from packages/opentelemetry-metrics/src/export/Aggregator.ts rename to packages/opentelemetry-metrics/src/export/aggregators/measureexact.ts index d8bd4373b9d..30048da6a92 100644 --- a/packages/opentelemetry-metrics/src/export/Aggregator.ts +++ b/packages/opentelemetry-metrics/src/export/aggregators/measureexact.ts @@ -14,46 +14,10 @@ * limitations under the License. */ -import { Aggregator, Distribution, Point } from './types'; +import { Aggregator, Point, Distribution } from '../types'; import { HrTime } from '@opentelemetry/api'; import { hrTime } from '@opentelemetry/core'; -/** Basic aggregator which calculates a Sum from individual measurements. */ -export class CounterSumAggregator implements Aggregator { - private _current: number = 0; - private _lastUpdateTime: HrTime = [0, 0]; - - update(value: number): void { - this._current += value; - this._lastUpdateTime = hrTime(); - } - - toPoint(): Point { - return { - value: this._current, - timestamp: this._lastUpdateTime, - }; - } -} - -/** Basic aggregator for Observer which keeps the last recorded value. */ -export class ObserverAggregator implements Aggregator { - private _current: number = 0; - private _lastUpdateTime: HrTime = [0, 0]; - - update(value: number): void { - this._current = value; - this._lastUpdateTime = hrTime(); - } - - toPoint(): Point { - return { - value: this._current, - timestamp: this._lastUpdateTime, - }; - } -} - /** Basic aggregator keeping all raw values (events, sum, max and min). */ export class MeasureExactAggregator implements Aggregator { private _distribution: Distribution; @@ -82,4 +46,4 @@ export class MeasureExactAggregator implements Aggregator { timestamp: this._lastUpdateTime, }; } -} +} \ No newline at end of file diff --git a/packages/opentelemetry-metrics/src/export/aggregators/observer.ts b/packages/opentelemetry-metrics/src/export/aggregators/observer.ts new file mode 100644 index 00000000000..60e1d3ce5f7 --- /dev/null +++ b/packages/opentelemetry-metrics/src/export/aggregators/observer.ts @@ -0,0 +1,37 @@ +/*! + * Copyright 2020, OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Aggregator, Point } from '../types'; +import { HrTime } from '@opentelemetry/api'; +import { hrTime } from '@opentelemetry/core'; + +/** Basic aggregator for Observer which keeps the last recorded value. */ +export class ObserverAggregator implements Aggregator { + private _current: number = 0; + private _lastUpdateTime: HrTime = [0, 0]; + + update(value: number): void { + this._current = value; + this._lastUpdateTime = hrTime(); + } + + toPoint(): Point { + return { + value: this._current, + timestamp: this._lastUpdateTime, + }; + } +} \ No newline at end of file diff --git a/packages/opentelemetry-metrics/src/index.ts b/packages/opentelemetry-metrics/src/index.ts index c9f158528f1..113f788dd9d 100644 --- a/packages/opentelemetry-metrics/src/index.ts +++ b/packages/opentelemetry-metrics/src/index.ts @@ -18,7 +18,6 @@ export * from './BoundInstrument'; export * from './Meter'; export * from './Metric'; export * from './MeterProvider'; -export * from './export/Aggregator'; +export * from './export/aggregators'; export * from './export/ConsoleMetricExporter'; export * from './export/types'; -export * from './export/Aggregator'; diff --git a/packages/opentelemetry-metrics/test/Meter.test.ts b/packages/opentelemetry-metrics/test/Meter.test.ts index 71cd83e9e07..e09e57ee64e 100644 --- a/packages/opentelemetry-metrics/test/Meter.test.ts +++ b/packages/opentelemetry-metrics/test/Meter.test.ts @@ -32,7 +32,7 @@ import { NoopLogger, hrTime, hrTimeToNanoseconds } from '@opentelemetry/core'; import { CounterSumAggregator, ObserverAggregator, -} from '../src/export/Aggregator'; +} from '../src/export/aggregators'; import { ValueType } from '@opentelemetry/api'; import { Resource } from '@opentelemetry/resources'; import { hashLabels } from '../src/Utils';