summaryrefslogtreecommitdiff
path: root/vendor/open-telemetry/sdk/Metrics/AggregationInterface.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/open-telemetry/sdk/Metrics/AggregationInterface.php')
-rw-r--r--vendor/open-telemetry/sdk/Metrics/AggregationInterface.php57
1 files changed, 57 insertions, 0 deletions
diff --git a/vendor/open-telemetry/sdk/Metrics/AggregationInterface.php b/vendor/open-telemetry/sdk/Metrics/AggregationInterface.php
new file mode 100644
index 000000000..0a85207e0
--- /dev/null
+++ b/vendor/open-telemetry/sdk/Metrics/AggregationInterface.php
@@ -0,0 +1,57 @@
+<?php
+
+declare(strict_types=1);
+
+namespace OpenTelemetry\SDK\Metrics;
+
+use OpenTelemetry\Context\ContextInterface;
+use OpenTelemetry\SDK\Common\Attribute\AttributesInterface;
+use OpenTelemetry\SDK\Metrics\Data\DataInterface;
+use OpenTelemetry\SDK\Metrics\Data\Exemplar;
+use OpenTelemetry\SDK\Metrics\Data\Temporality;
+
+/**
+ * @psalm-template T
+ */
+interface AggregationInterface
+{
+ /**
+ * @psalm-return T
+ */
+ public function initialize();
+
+ /**
+ * @psalm-param T $summary
+ * @psalm-param float|int $value
+ */
+ public function record($summary, $value, AttributesInterface $attributes, ContextInterface $context, int $timestamp): void;
+
+ /**
+ * @psalm-param T $left
+ * @psalm-param T $right
+ * @psalm-return T
+ */
+ public function merge($left, $right);
+
+ /**
+ * @psalm-param T $left
+ * @psalm-param T $right
+ * @psalm-return T
+ */
+ public function diff($left, $right);
+
+ /**
+ * @param array<AttributesInterface> $attributes
+ * @psalm-param array<T> $summaries
+ * @param array<list<Exemplar>> $exemplars
+ * @param string|Temporality $temporality
+ */
+ public function toData(
+ array $attributes,
+ array $summaries,
+ array $exemplars,
+ int $startTimestamp,
+ int $timestamp,
+ $temporality
+ ): DataInterface;
+}