Skip to content
Open
17 changes: 14 additions & 3 deletions ddtrace/internal/telemetry/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,20 @@ class TELEMETRY_NAMESPACE(Enum):
PROFILER = "profiler"


TELEMETRY_TYPE_GENERATE_METRICS = "generate-metrics"
TELEMETRY_TYPE_DISTRIBUTION = "distributions"
TELEMETRY_TYPE_LOGS = "logs"
class TELEMETRY_EVENT_TYPE(Enum):
STARTED = "app-started"
SHUTDOWN = "app-closing"
HEARTBEAT = "app-heartbeat"
EXTENDED_HEARTBEAT = "app-extended-heartbeat"
DEPENDENCIES_LOADED = "app-dependencies-loaded"
PRODUCT_CHANGE = "app-product-change"
INTEGRATIONS_CHANGE = "app-integrations-change"
ENDPOINTS = "app-endpoints"
CLIENT_CONFIGURATION_CHANGE = "app-client-configuration-change"
LOGS = "logs"
METRICS = "generate-metrics"
DISTRIBUTIONS = "distributions"
MESSAGE_BATCH = "message-batch"


class TELEMETRY_LOG_LEVEL(Enum):
Expand Down
11 changes: 5 additions & 6 deletions ddtrace/internal/telemetry/metrics_namespaces.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@ from typing import Tuple

from ddtrace.internal import forksafe
from ddtrace.internal.telemetry.constants import TELEMETRY_NAMESPACE
from ddtrace.internal.telemetry.constants import TELEMETRY_TYPE_DISTRIBUTION
from ddtrace.internal.telemetry.constants import TELEMETRY_TYPE_GENERATE_METRICS
from ddtrace.internal.telemetry.constants import TELEMETRY_EVENT_TYPE


MetricTagType = Optional[Tuple[Tuple[str, str], ...]]
Expand Down Expand Up @@ -46,14 +45,14 @@ cdef class MetricNamespace:

now = int(time.time())
data = {
TELEMETRY_TYPE_GENERATE_METRICS: {},
TELEMETRY_TYPE_DISTRIBUTION: {},
TELEMETRY_EVENT_TYPE.METRICS: {},
TELEMETRY_EVENT_TYPE.DISTRIBUTIONS: {},
}
for metric_id, value in namespace_metrics.items():
name, namespace, _tags, metric_type = metric_id
tags = ["{}:{}".format(k, v).lower() for k, v in _tags] if _tags else []
if metric_type is MetricType.DISTRIBUTION:
data[TELEMETRY_TYPE_DISTRIBUTION].setdefault(namespace, []).append({
data[TELEMETRY_EVENT_TYPE.DISTRIBUTIONS].setdefault(namespace, []).append({
"metric": name,
"points": value,
"tags": tags,
Expand All @@ -70,7 +69,7 @@ cdef class MetricNamespace:
}
if metric_type in (MetricType.RATE, MetricType.GAUGE):
metric["interval"] = _interval
data[TELEMETRY_TYPE_GENERATE_METRICS].setdefault(namespace, []).append(metric)
data[TELEMETRY_EVENT_TYPE.METRICS].setdefault(namespace, []).append(metric)

return data

Expand Down
Loading
Loading