Skip to content

Commit 406dce1

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add support for span id remapper in logs pipelines processors (#2421)
Co-authored-by: ci.datadog-api-spec <[email protected]>
1 parent da1ee9e commit 406dce1

13 files changed

+262
-5
lines changed

.apigentools-info

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
"spec_versions": {
55
"v1": {
66
"apigentools_version": "1.6.6",
7-
"regenerated": "2025-02-21 08:00:34.129753",
8-
"spec_repo_commit": "8f2d39c3"
7+
"regenerated": "2025-02-21 18:16:35.117146",
8+
"spec_repo_commit": "5de91bd6"
99
},
1010
"v2": {
1111
"apigentools_version": "1.6.6",
12-
"regenerated": "2025-02-21 08:00:34.144342",
13-
"spec_repo_commit": "8f2d39c3"
12+
"regenerated": "2025-02-21 18:16:35.131972",
13+
"spec_repo_commit": "5de91bd6"
1414
}
1515
}
1616
}

.generator/schemas/v1/openapi.yaml

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6049,6 +6049,7 @@ components:
60496049
- $ref: '#/components/schemas/LogsLookupProcessor'
60506050
- $ref: '#/components/schemas/ReferenceTableLogsLookupProcessor'
60516051
- $ref: '#/components/schemas/LogsTraceRemapper'
6052+
- $ref: '#/components/schemas/LogsSpanRemapper'
60526053
LogsQueryCompute:
60536054
description: Define computation for a log query.
60546055
properties:
@@ -6160,6 +6161,43 @@ components:
61606161
x-enum-varnames:
61616162
- TIME_ASCENDING
61626163
- TIME_DESCENDING
6164+
LogsSpanRemapper:
6165+
description: "There are two ways to define correlation between application spans
6166+
and logs:\n\n 1. Follow the documentation on [how to inject a span ID in
6167+
the application logs](https://docs.datadoghq.com/tracing/connect_logs_and_traces).\n
6168+
\ Log integrations automatically handle all remaining setup steps by default.\n\n
6169+
\ 2. Use the span remapper processor to define a log attribute as its associated
6170+
span ID."
6171+
properties:
6172+
is_enabled:
6173+
default: false
6174+
description: Whether or not the processor is enabled.
6175+
type: boolean
6176+
name:
6177+
description: Name of the processor.
6178+
type: string
6179+
sources:
6180+
default:
6181+
- dd.span_id
6182+
description: Array of source attributes.
6183+
items:
6184+
description: Attribute to extract the span ID from.
6185+
type: string
6186+
type: array
6187+
type:
6188+
$ref: '#/components/schemas/LogsSpanRemapperType'
6189+
required:
6190+
- type
6191+
type: object
6192+
LogsSpanRemapperType:
6193+
default: span-id-remapper
6194+
description: Type of logs span remapper.
6195+
enum:
6196+
- span-id-remapper
6197+
example: span-id-remapper
6198+
type: string
6199+
x-enum-varnames:
6200+
- SPAN_ID_REMAPPER
61636201
LogsStatusRemapper:
61646202
description: "Use this Processor if you want to assign some attributes as the
61656203
official status.\n\nEach incoming status value is mapped as follows.\n\n -
@@ -6275,7 +6313,7 @@ components:
62756313
- dd.trace_id
62766314
description: Array of source attributes.
62776315
items:
6278-
description: Attribute to extract the Trace ID from.
6316+
description: Attribute to extract the trace ID from.
62796317
type: string
62806318
type: array
62816319
type:

docs/datadog_api_client.v1.model.rst

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1873,6 +1873,20 @@ datadog\_api\_client.v1.model.logs\_sort module
18731873
:members:
18741874
:show-inheritance:
18751875

1876+
datadog\_api\_client.v1.model.logs\_span\_remapper module
1877+
---------------------------------------------------------
1878+
1879+
.. automodule:: datadog_api_client.v1.model.logs_span_remapper
1880+
:members:
1881+
:show-inheritance:
1882+
1883+
datadog\_api\_client.v1.model.logs\_span\_remapper\_type module
1884+
---------------------------------------------------------------
1885+
1886+
.. automodule:: datadog_api_client.v1.model.logs_span_remapper_type
1887+
:members:
1888+
:show-inheritance:
1889+
18761890
datadog\_api\_client.v1.model.logs\_status\_remapper module
18771891
-----------------------------------------------------------
18781892

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
"""
2+
Create a pipeline with Span Id Remapper returns "OK" response
3+
"""
4+
5+
from datadog_api_client import ApiClient, Configuration
6+
from datadog_api_client.v1.api.logs_pipelines_api import LogsPipelinesApi
7+
from datadog_api_client.v1.model.logs_filter import LogsFilter
8+
from datadog_api_client.v1.model.logs_pipeline import LogsPipeline
9+
from datadog_api_client.v1.model.logs_span_remapper import LogsSpanRemapper
10+
from datadog_api_client.v1.model.logs_span_remapper_type import LogsSpanRemapperType
11+
12+
body = LogsPipeline(
13+
filter=LogsFilter(
14+
query="source:python",
15+
),
16+
name="testPipeline",
17+
processors=[
18+
LogsSpanRemapper(
19+
type=LogsSpanRemapperType.SPAN_ID_REMAPPER,
20+
is_enabled=True,
21+
name="test_filter",
22+
sources=[
23+
"dd.span_id",
24+
],
25+
),
26+
],
27+
tags=[],
28+
)
29+
30+
configuration = Configuration()
31+
with ApiClient(configuration) as api_client:
32+
api_instance = LogsPipelinesApi(api_client)
33+
response = api_instance.create_logs_pipeline(body=body)
34+
35+
print(response)

src/datadog_api_client/v1/model/logs_pipeline.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
from datadog_api_client.v1.model.logs_lookup_processor import LogsLookupProcessor
3333
from datadog_api_client.v1.model.reference_table_logs_lookup_processor import ReferenceTableLogsLookupProcessor
3434
from datadog_api_client.v1.model.logs_trace_remapper import LogsTraceRemapper
35+
from datadog_api_client.v1.model.logs_span_remapper import LogsSpanRemapper
3536

3637

3738
class LogsPipeline(ModelNormal):
@@ -97,6 +98,7 @@ def __init__(
9798
LogsLookupProcessor,
9899
ReferenceTableLogsLookupProcessor,
99100
LogsTraceRemapper,
101+
LogsSpanRemapper,
100102
]
101103
],
102104
UnsetType,

src/datadog_api_client/v1/model/logs_pipeline_processor.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
from datadog_api_client.v1.model.logs_lookup_processor import LogsLookupProcessor
3333
from datadog_api_client.v1.model.reference_table_logs_lookup_processor import ReferenceTableLogsLookupProcessor
3434
from datadog_api_client.v1.model.logs_trace_remapper import LogsTraceRemapper
35+
from datadog_api_client.v1.model.logs_span_remapper import LogsSpanRemapper
3536

3637

3738
class LogsPipelineProcessor(ModelNormal):
@@ -83,6 +84,7 @@ def __init__(
8384
LogsLookupProcessor,
8485
ReferenceTableLogsLookupProcessor,
8586
LogsTraceRemapper,
87+
LogsSpanRemapper,
8688
]
8789
],
8890
UnsetType,

src/datadog_api_client/v1/model/logs_processor.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ def _composed_schemas(_):
119119
from datadog_api_client.v1.model.logs_lookup_processor import LogsLookupProcessor
120120
from datadog_api_client.v1.model.reference_table_logs_lookup_processor import ReferenceTableLogsLookupProcessor
121121
from datadog_api_client.v1.model.logs_trace_remapper import LogsTraceRemapper
122+
from datadog_api_client.v1.model.logs_span_remapper import LogsSpanRemapper
122123

123124
return {
124125
"oneOf": [
@@ -138,5 +139,6 @@ def _composed_schemas(_):
138139
LogsLookupProcessor,
139140
ReferenceTableLogsLookupProcessor,
140141
LogsTraceRemapper,
142+
LogsSpanRemapper,
141143
],
142144
}
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
2+
# This product includes software developed at Datadog (https://www.datadoghq.com/).
3+
# Copyright 2019-Present Datadog, Inc.
4+
from __future__ import annotations
5+
6+
from typing import List, Union, TYPE_CHECKING
7+
8+
from datadog_api_client.model_utils import (
9+
ModelNormal,
10+
cached_property,
11+
unset,
12+
UnsetType,
13+
)
14+
15+
16+
if TYPE_CHECKING:
17+
from datadog_api_client.v1.model.logs_span_remapper_type import LogsSpanRemapperType
18+
19+
20+
class LogsSpanRemapper(ModelNormal):
21+
@cached_property
22+
def openapi_types(_):
23+
from datadog_api_client.v1.model.logs_span_remapper_type import LogsSpanRemapperType
24+
25+
return {
26+
"is_enabled": (bool,),
27+
"name": (str,),
28+
"sources": ([str],),
29+
"type": (LogsSpanRemapperType,),
30+
}
31+
32+
attribute_map = {
33+
"is_enabled": "is_enabled",
34+
"name": "name",
35+
"sources": "sources",
36+
"type": "type",
37+
}
38+
39+
def __init__(
40+
self_,
41+
type: LogsSpanRemapperType,
42+
is_enabled: Union[bool, UnsetType] = unset,
43+
name: Union[str, UnsetType] = unset,
44+
sources: Union[List[str], UnsetType] = unset,
45+
**kwargs,
46+
):
47+
"""
48+
There are two ways to define correlation between application spans and logs:
49+
50+
#.
51+
Follow the documentation on `how to inject a span ID in the application logs <https://docs.datadoghq.com/tracing/connect_logs_and_traces>`_.
52+
Log integrations automatically handle all remaining setup steps by default.
53+
54+
#.
55+
Use the span remapper processor to define a log attribute as its associated span ID.
56+
57+
:param is_enabled: Whether or not the processor is enabled.
58+
:type is_enabled: bool, optional
59+
60+
:param name: Name of the processor.
61+
:type name: str, optional
62+
63+
:param sources: Array of source attributes.
64+
:type sources: [str], optional
65+
66+
:param type: Type of logs span remapper.
67+
:type type: LogsSpanRemapperType
68+
"""
69+
if is_enabled is not unset:
70+
kwargs["is_enabled"] = is_enabled
71+
if name is not unset:
72+
kwargs["name"] = name
73+
if sources is not unset:
74+
kwargs["sources"] = sources
75+
super().__init__(kwargs)
76+
77+
self_.type = type
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
2+
# This product includes software developed at Datadog (https://www.datadoghq.com/).
3+
# Copyright 2019-Present Datadog, Inc.
4+
from __future__ import annotations
5+
6+
7+
from datadog_api_client.model_utils import (
8+
ModelSimple,
9+
cached_property,
10+
)
11+
12+
from typing import ClassVar
13+
14+
15+
class LogsSpanRemapperType(ModelSimple):
16+
"""
17+
Type of logs span remapper.
18+
19+
:param value: If omitted defaults to "span-id-remapper". Must be one of ["span-id-remapper"].
20+
:type value: str
21+
"""
22+
23+
allowed_values = {
24+
"span-id-remapper",
25+
}
26+
SPAN_ID_REMAPPER: ClassVar["LogsSpanRemapperType"]
27+
28+
@cached_property
29+
def openapi_types(_):
30+
return {
31+
"value": (str,),
32+
}
33+
34+
35+
LogsSpanRemapperType.SPAN_ID_REMAPPER = LogsSpanRemapperType("span-id-remapper")

src/datadog_api_client/v1/models/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,8 @@
299299
from datadog_api_client.v1.model.logs_service_remapper import LogsServiceRemapper
300300
from datadog_api_client.v1.model.logs_service_remapper_type import LogsServiceRemapperType
301301
from datadog_api_client.v1.model.logs_sort import LogsSort
302+
from datadog_api_client.v1.model.logs_span_remapper import LogsSpanRemapper
303+
from datadog_api_client.v1.model.logs_span_remapper_type import LogsSpanRemapperType
302304
from datadog_api_client.v1.model.logs_status_remapper import LogsStatusRemapper
303305
from datadog_api_client.v1.model.logs_status_remapper_type import LogsStatusRemapperType
304306
from datadog_api_client.v1.model.logs_string_builder_processor import LogsStringBuilderProcessor
@@ -1345,6 +1347,8 @@
13451347
"LogsServiceRemapper",
13461348
"LogsServiceRemapperType",
13471349
"LogsSort",
1350+
"LogsSpanRemapper",
1351+
"LogsSpanRemapperType",
13481352
"LogsStatusRemapper",
13491353
"LogsStatusRemapperType",
13501354
"LogsStringBuilderProcessor",

0 commit comments

Comments
 (0)