Skip to content

Commit ef82a98

Browse files
committed
Added ForceFlush Implementation
1 parent a4bcadc commit ef82a98

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

aws-opentelemetry-distro/src/amazon/opentelemetry/distro/aws_span_metrics_processor.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
# SPDX-License-Identifier: Apache-2.0
3-
from typing import Dict, Optional
3+
from typing import Dict, Optional, Callable
44

55
from typing_extensions import override
66

77
from amazon.opentelemetry.distro.metric_attribute_generator import MetricAttributeGenerator
88
from opentelemetry.context import Context
99
from opentelemetry.metrics import Histogram
10+
from opentelemetry.sdk.metrics import MeterProvider
1011
from opentelemetry.sdk.resources import Resource
1112
from opentelemetry.sdk.trace import BoundedAttributes, ReadableSpan, Span, SpanProcessor, StatusCode
1213
from opentelemetry.semconv.trace import SpanAttributes
@@ -45,19 +46,23 @@ class AwsSpanMetricsProcessor(SpanProcessor):
4546
_generator: MetricAttributeGenerator
4647
_resource: Resource
4748

49+
_force_flush_function: Callable
50+
4851
def __init__(
4952
self,
5053
error_histogram: Histogram,
5154
fault_histogram: Histogram,
5255
latency_histogram: Histogram,
5356
generator: MetricAttributeGenerator,
5457
resource: Resource,
58+
force_flush_function: Callable,
5559
):
5660
self._error_histogram = error_histogram
5761
self._fault_histogram = fault_histogram
5862
self._latency_histogram = latency_histogram
5963
self._generator = generator
6064
self._resource = resource
65+
self._force_flush_function = force_flush_function
6166

6267
# pylint: disable=no-self-use
6368
@override
@@ -78,8 +83,8 @@ def shutdown(self) -> None:
7883

7984
# pylint: disable=no-self-use
8085
@override
81-
def force_flush(self, timeout_millis: int = None) -> bool:
82-
return True
86+
def force_flush(self, timeout_millis: float = 10_000) -> bool:
87+
return self._force_flush_function(timeout_millis)
8388

8489
def _record_metrics(self, span: ReadableSpan, attributes: BoundedAttributes) -> None:
8590
# Only record metrics if non-empty attributes are returned.

aws-opentelemetry-distro/src/amazon/opentelemetry/distro/aws_span_metrics_processor_builder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,5 +63,5 @@ def build(self) -> AwsSpanMetricsProcessor:
6363
latency_histogram.name = _LATENCY
6464

6565
return AwsSpanMetricsProcessor(
66-
error_histogram, fault_histogram, latency_histogram, self._generator, self._resource
66+
error_histogram, fault_histogram, latency_histogram, self._generator, self._resource, self._meter_provider.force_flush
6767
)

0 commit comments

Comments
 (0)