diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index c441901f41..b6a3ce30c8 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -72524,6 +72524,7 @@ components: - $ref: "#/components/schemas/ObservabilityPipelineSyslogNgDestination" - $ref: "#/components/schemas/ObservabilityPipelineDatabricksZerobusDestination" - $ref: "#/components/schemas/ObservabilityPipelineDatadogMetricsDestination" + - $ref: "#/components/schemas/ObservabilityPipelineOpentelemetryMetricsDestination" - $ref: "#/components/schemas/ObservabilityPipelineSplunkHecMetricsDestination" ObservabilityPipelineConfigPipelineType: default: logs @@ -75170,6 +75171,49 @@ components: type: string x-enum-varnames: - OPENSEARCH + ObservabilityPipelineOpentelemetryMetricsDestination: + description: |- + The `opentelemetry` destination forwards metrics using the OpenTelemetry Protocol (OTLP) over HTTP. + + **Supported pipeline types:** metrics + properties: + buffer: + $ref: "#/components/schemas/ObservabilityPipelineBufferOptions" + http_client_uri_key: + default: DESTINATION_OTEL_HTTP_CLIENT_URI + description: Environment variable name containing the URI of the OTLP HTTP endpoint to send metrics to. + example: DESTINATION_OTEL_HTTP_CLIENT_URI + type: string + id: + description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). + example: opentelemetry-metrics-destination + type: string + inputs: + description: A list of component IDs whose output is used as the `input` for this component. + example: ["metrics-filter-processor"] + items: + description: The ID of a component whose output is used as input for this destination. + type: string + type: array + tls: + $ref: "#/components/schemas/ObservabilityPipelineTls" + type: + $ref: "#/components/schemas/ObservabilityPipelineOpentelemetryMetricsDestinationType" + required: + - id + - type + - inputs + type: object + x-pipeline-types: [metrics] + ObservabilityPipelineOpentelemetryMetricsDestinationType: + default: opentelemetry + description: The destination type. Always `opentelemetry`. + enum: + - opentelemetry + example: opentelemetry + type: string + x-enum-varnames: + - OPENTELEMETRY ObservabilityPipelineOpentelemetrySource: description: |- The `opentelemetry` source receives telemetry data using the OpenTelemetry Protocol (OTLP) over gRPC and HTTP. diff --git a/src/datadog_api_client/v2/model/observability_pipeline_config.py b/src/datadog_api_client/v2/model/observability_pipeline_config.py index 1b300b8ae9..0969d7e226 100644 --- a/src/datadog_api_client/v2/model/observability_pipeline_config.py +++ b/src/datadog_api_client/v2/model/observability_pipeline_config.py @@ -100,6 +100,9 @@ from datadog_api_client.v2.model.observability_pipeline_datadog_metrics_destination import ( ObservabilityPipelineDatadogMetricsDestination, ) + from datadog_api_client.v2.model.observability_pipeline_opentelemetry_metrics_destination import ( + ObservabilityPipelineOpentelemetryMetricsDestination, + ) from datadog_api_client.v2.model.observability_pipeline_splunk_hec_metrics_destination import ( ObservabilityPipelineSplunkHecMetricsDestination, ) @@ -208,6 +211,7 @@ def __init__( ObservabilityPipelineSyslogNgDestination, ObservabilityPipelineDatabricksZerobusDestination, ObservabilityPipelineDatadogMetricsDestination, + ObservabilityPipelineOpentelemetryMetricsDestination, ObservabilityPipelineSplunkHecMetricsDestination, ] ], diff --git a/src/datadog_api_client/v2/model/observability_pipeline_config_destination_item.py b/src/datadog_api_client/v2/model/observability_pipeline_config_destination_item.py index 52181dc88c..2753bdefaf 100644 --- a/src/datadog_api_client/v2/model/observability_pipeline_config_destination_item.py +++ b/src/datadog_api_client/v2/model/observability_pipeline_config_destination_item.py @@ -262,6 +262,9 @@ def __init__(self, **kwargs): :param unity_catalog_endpoint_key: Name of the environment variable or the secret identifier that references your Databricks workspace URL, which is used to communicate with the Unity Catalog API. :type unity_catalog_endpoint_key: str, optional + :param http_client_uri_key: Environment variable name containing the URI of the OTLP HTTP endpoint to send metrics to. + :type http_client_uri_key: str, optional + :param default_namespace: Optional default namespace for metrics sent to Splunk HEC. :type default_namespace: str, optional @@ -353,6 +356,9 @@ def _composed_schemas(_): from datadog_api_client.v2.model.observability_pipeline_datadog_metrics_destination import ( ObservabilityPipelineDatadogMetricsDestination, ) + from datadog_api_client.v2.model.observability_pipeline_opentelemetry_metrics_destination import ( + ObservabilityPipelineOpentelemetryMetricsDestination, + ) from datadog_api_client.v2.model.observability_pipeline_splunk_hec_metrics_destination import ( ObservabilityPipelineSplunkHecMetricsDestination, ) @@ -385,6 +391,7 @@ def _composed_schemas(_): ObservabilityPipelineSyslogNgDestination, ObservabilityPipelineDatabricksZerobusDestination, ObservabilityPipelineDatadogMetricsDestination, + ObservabilityPipelineOpentelemetryMetricsDestination, ObservabilityPipelineSplunkHecMetricsDestination, ], } diff --git a/src/datadog_api_client/v2/model/observability_pipeline_opentelemetry_metrics_destination.py b/src/datadog_api_client/v2/model/observability_pipeline_opentelemetry_metrics_destination.py new file mode 100644 index 0000000000..abc7f0eb3d --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_opentelemetry_metrics_destination.py @@ -0,0 +1,109 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.observability_pipeline_buffer_options import ObservabilityPipelineBufferOptions + from datadog_api_client.v2.model.observability_pipeline_tls import ObservabilityPipelineTls + from datadog_api_client.v2.model.observability_pipeline_opentelemetry_metrics_destination_type import ( + ObservabilityPipelineOpentelemetryMetricsDestinationType, + ) + from datadog_api_client.v2.model.observability_pipeline_disk_buffer_options import ( + ObservabilityPipelineDiskBufferOptions, + ) + from datadog_api_client.v2.model.observability_pipeline_memory_buffer_options import ( + ObservabilityPipelineMemoryBufferOptions, + ) + from datadog_api_client.v2.model.observability_pipeline_memory_buffer_size_options import ( + ObservabilityPipelineMemoryBufferSizeOptions, + ) + + +class ObservabilityPipelineOpentelemetryMetricsDestination(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.observability_pipeline_buffer_options import ObservabilityPipelineBufferOptions + from datadog_api_client.v2.model.observability_pipeline_tls import ObservabilityPipelineTls + from datadog_api_client.v2.model.observability_pipeline_opentelemetry_metrics_destination_type import ( + ObservabilityPipelineOpentelemetryMetricsDestinationType, + ) + + return { + "buffer": (ObservabilityPipelineBufferOptions,), + "http_client_uri_key": (str,), + "id": (str,), + "inputs": ([str],), + "tls": (ObservabilityPipelineTls,), + "type": (ObservabilityPipelineOpentelemetryMetricsDestinationType,), + } + + attribute_map = { + "buffer": "buffer", + "http_client_uri_key": "http_client_uri_key", + "id": "id", + "inputs": "inputs", + "tls": "tls", + "type": "type", + } + + def __init__( + self_, + id: str, + inputs: List[str], + type: ObservabilityPipelineOpentelemetryMetricsDestinationType, + buffer: Union[ + ObservabilityPipelineBufferOptions, + ObservabilityPipelineDiskBufferOptions, + ObservabilityPipelineMemoryBufferOptions, + ObservabilityPipelineMemoryBufferSizeOptions, + UnsetType, + ] = unset, + http_client_uri_key: Union[str, UnsetType] = unset, + tls: Union[ObservabilityPipelineTls, UnsetType] = unset, + **kwargs, + ): + """ + The ``opentelemetry`` destination forwards metrics using the OpenTelemetry Protocol (OTLP) over HTTP. + + **Supported pipeline types:** metrics + + :param buffer: Configuration for buffer settings on destination components. + :type buffer: ObservabilityPipelineBufferOptions, optional + + :param http_client_uri_key: Environment variable name containing the URI of the OTLP HTTP endpoint to send metrics to. + :type http_client_uri_key: str, optional + + :param id: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the ``input`` to downstream components). + :type id: str + + :param inputs: A list of component IDs whose output is used as the ``input`` for this component. + :type inputs: [str] + + :param tls: Configuration for enabling TLS encryption between the pipeline component and external services. + :type tls: ObservabilityPipelineTls, optional + + :param type: The destination type. Always ``opentelemetry``. + :type type: ObservabilityPipelineOpentelemetryMetricsDestinationType + """ + if buffer is not unset: + kwargs["buffer"] = buffer + if http_client_uri_key is not unset: + kwargs["http_client_uri_key"] = http_client_uri_key + if tls is not unset: + kwargs["tls"] = tls + super().__init__(kwargs) + + self_.id = id + self_.inputs = inputs + self_.type = type diff --git a/src/datadog_api_client/v2/model/observability_pipeline_opentelemetry_metrics_destination_type.py b/src/datadog_api_client/v2/model/observability_pipeline_opentelemetry_metrics_destination_type.py new file mode 100644 index 0000000000..323a7d0ea5 --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_opentelemetry_metrics_destination_type.py @@ -0,0 +1,37 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class ObservabilityPipelineOpentelemetryMetricsDestinationType(ModelSimple): + """ + The destination type. Always `opentelemetry`. + + :param value: If omitted defaults to "opentelemetry". Must be one of ["opentelemetry"]. + :type value: str + """ + + allowed_values = { + "opentelemetry", + } + OPENTELEMETRY: ClassVar["ObservabilityPipelineOpentelemetryMetricsDestinationType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +ObservabilityPipelineOpentelemetryMetricsDestinationType.OPENTELEMETRY = ( + ObservabilityPipelineOpentelemetryMetricsDestinationType("opentelemetry") +) diff --git a/src/datadog_api_client/v2/models/__init__.py b/src/datadog_api_client/v2/models/__init__.py index e0d37f05e7..49f69277af 100644 --- a/src/datadog_api_client/v2/models/__init__.py +++ b/src/datadog_api_client/v2/models/__init__.py @@ -6348,6 +6348,12 @@ from datadog_api_client.v2.model.observability_pipeline_open_search_destination_type import ( ObservabilityPipelineOpenSearchDestinationType, ) +from datadog_api_client.v2.model.observability_pipeline_opentelemetry_metrics_destination import ( + ObservabilityPipelineOpentelemetryMetricsDestination, +) +from datadog_api_client.v2.model.observability_pipeline_opentelemetry_metrics_destination_type import ( + ObservabilityPipelineOpentelemetryMetricsDestinationType, +) from datadog_api_client.v2.model.observability_pipeline_opentelemetry_source import ( ObservabilityPipelineOpentelemetrySource, ) @@ -15721,6 +15727,8 @@ "ObservabilityPipelineOpenSearchDestination", "ObservabilityPipelineOpenSearchDestinationDataStream", "ObservabilityPipelineOpenSearchDestinationType", + "ObservabilityPipelineOpentelemetryMetricsDestination", + "ObservabilityPipelineOpentelemetryMetricsDestinationType", "ObservabilityPipelineOpentelemetrySource", "ObservabilityPipelineOpentelemetrySourceType", "ObservabilityPipelineParseGrokProcessor",