Skip to content

Commit aceea98

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Adding all Observability Pipeline new hec_token related features into the api (#3712)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent 818a4e5 commit aceea98

19 files changed

+1588
-10
lines changed

.generator/schemas/v2/openapi.yaml

Lines changed: 63 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44467,6 +44467,40 @@ components:
4446744467
type: string
4446844468
x-enum-varnames:
4446944469
- ELASTICSEARCH
44470+
ObservabilityPipelineEnrichmentTableFieldEventLookup:
44471+
description: Looks up a value from a field path in the log event.
44472+
properties:
44473+
event:
44474+
description: The path to the field in the log event to use as the lookup key.
44475+
example: log.user.id
44476+
type: string
44477+
required:
44478+
- event
44479+
type: object
44480+
ObservabilityPipelineEnrichmentTableFieldSecretLookup:
44481+
description: Looks up a value stored as a pipeline secret.
44482+
properties:
44483+
secret:
44484+
description: The name of the secret containing the lookup key value.
44485+
example: MY_LOOKUP_SECRET
44486+
type: string
44487+
required:
44488+
- secret
44489+
type: object
44490+
ObservabilityPipelineEnrichmentTableFieldStringPath:
44491+
description: A plain field path in the log event, used as the lookup key.
44492+
example: log.user.id
44493+
type: string
44494+
ObservabilityPipelineEnrichmentTableFieldVrlLookup:
44495+
description: Evaluates a VRL expression to produce the lookup key.
44496+
properties:
44497+
vrl:
44498+
description: A VRL expression that returns the value to use as the lookup key.
44499+
example: .log.user.id
44500+
type: string
44501+
required:
44502+
- vrl
44503+
type: object
4447044504
ObservabilityPipelineEnrichmentTableFile:
4447144505
description: Defines a static enrichment table loaded from a CSV file.
4447244506
properties:
@@ -44517,6 +44551,16 @@ components:
4451744551
type: string
4451844552
x-enum-varnames:
4451944553
- CSV
44554+
ObservabilityPipelineEnrichmentTableFileKeyItemField:
44555+
description: |-
44556+
Specifies the source of the key value used for enrichment table lookups.
44557+
Can be a plain field path string or an object specifying `event`, `vrl`, or `secret`.
44558+
example: log.user.id
44559+
oneOf:
44560+
- $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFieldStringPath"
44561+
- $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFieldEventLookup"
44562+
- $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFieldVrlLookup"
44563+
- $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFieldSecretLookup"
4452044564
ObservabilityPipelineEnrichmentTableFileKeyItems:
4452144565
description: Defines how to map log fields to enrichment table columns during lookups.
4452244566
properties:
@@ -44527,9 +44571,7 @@ components:
4452744571
comparison:
4452844572
$ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFileKeyItemsComparison"
4452944573
field:
44530-
description: The `items` `field`.
44531-
example: log.user.id
44532-
type: string
44574+
$ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableFileKeyItemField"
4453344575
required:
4453444576
- column
4453544577
- comparison
@@ -47550,6 +47592,8 @@ components:
4755047592
description: Name of the environment variable or secret that holds the Splunk HEC token.
4755147593
example: SPLUNK_HEC_TOKEN
4755247594
type: string
47595+
token_strategy:
47596+
$ref: "#/components/schemas/ObservabilityPipelineSplunkHecDestinationTokenStrategy"
4755347597
type:
4755447598
$ref: "#/components/schemas/ObservabilityPipelineSplunkHecDestinationType"
4755547599
required:
@@ -47568,6 +47612,16 @@ components:
4756847612
x-enum-varnames:
4756947613
- JSON
4757047614
- RAW_MESSAGE
47615+
ObservabilityPipelineSplunkHecDestinationTokenStrategy:
47616+
description: Controls how the Splunk HEC token is supplied. Use `custom` to provide a token with `token_key`, or `from_source` to forward the token received from an upstream Splunk HEC source.
47617+
enum:
47618+
- custom
47619+
- from_source
47620+
example: custom
47621+
type: string
47622+
x-enum-varnames:
47623+
- CUSTOM
47624+
- FROM_SOURCE
4757147625
ObservabilityPipelineSplunkHecDestinationType:
4757247626
default: splunk_hec
4757347627
description: The destination type. Always `splunk_hec`.
@@ -47591,6 +47645,12 @@ components:
4759147645
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).
4759247646
example: splunk-hec-source
4759347647
type: string
47648+
store_hec_token:
47649+
description: |-
47650+
When `true`, the Splunk HEC token from the incoming request is stored in the event metadata.
47651+
This allows downstream components to forward the token to other Splunk HEC destinations.
47652+
example: true
47653+
type: boolean
4759447654
tls:
4759547655
$ref: "#/components/schemas/ObservabilityPipelineTls"
4759647656
type:
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
// Validate an observability pipeline with Splunk HEC destination token_strategy returns "OK"
2+
// response
3+
4+
import com.datadog.api.client.ApiClient;
5+
import com.datadog.api.client.ApiException;
6+
import com.datadog.api.client.v2.api.ObservabilityPipelinesApi;
7+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfig;
8+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfigDestinationItem;
9+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfigProcessorGroup;
10+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfigProcessorItem;
11+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfigSourceItem;
12+
import com.datadog.api.client.v2.model.ObservabilityPipelineDataAttributes;
13+
import com.datadog.api.client.v2.model.ObservabilityPipelineDatadogAgentSource;
14+
import com.datadog.api.client.v2.model.ObservabilityPipelineDatadogAgentSourceType;
15+
import com.datadog.api.client.v2.model.ObservabilityPipelineFilterProcessor;
16+
import com.datadog.api.client.v2.model.ObservabilityPipelineFilterProcessorType;
17+
import com.datadog.api.client.v2.model.ObservabilityPipelineSpec;
18+
import com.datadog.api.client.v2.model.ObservabilityPipelineSpecData;
19+
import com.datadog.api.client.v2.model.ObservabilityPipelineSplunkHecDestination;
20+
import com.datadog.api.client.v2.model.ObservabilityPipelineSplunkHecDestinationTokenStrategy;
21+
import com.datadog.api.client.v2.model.ObservabilityPipelineSplunkHecDestinationType;
22+
import com.datadog.api.client.v2.model.ValidationResponse;
23+
import java.util.Collections;
24+
25+
public class Example {
26+
public static void main(String[] args) {
27+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
28+
ObservabilityPipelinesApi apiInstance = new ObservabilityPipelinesApi(defaultClient);
29+
30+
ObservabilityPipelineSpec body =
31+
new ObservabilityPipelineSpec()
32+
.data(
33+
new ObservabilityPipelineSpecData()
34+
.attributes(
35+
new ObservabilityPipelineDataAttributes()
36+
.config(
37+
new ObservabilityPipelineConfig()
38+
.destinations(
39+
Collections.singletonList(
40+
new ObservabilityPipelineConfigDestinationItem(
41+
new ObservabilityPipelineSplunkHecDestination()
42+
.id("splunk-hec-destination")
43+
.inputs(
44+
Collections.singletonList(
45+
"my-processor-group"))
46+
.type(
47+
ObservabilityPipelineSplunkHecDestinationType
48+
.SPLUNK_HEC)
49+
.tokenKey("SPLUNK_HEC_TOKEN")
50+
.tokenStrategy(
51+
ObservabilityPipelineSplunkHecDestinationTokenStrategy
52+
.CUSTOM))))
53+
.processorGroups(
54+
Collections.singletonList(
55+
new ObservabilityPipelineConfigProcessorGroup()
56+
.enabled(true)
57+
.id("my-processor-group")
58+
.include("service:my-service")
59+
.inputs(
60+
Collections.singletonList(
61+
"datadog-agent-source"))
62+
.processors(
63+
Collections.singletonList(
64+
new ObservabilityPipelineConfigProcessorItem(
65+
new ObservabilityPipelineFilterProcessor()
66+
.enabled(true)
67+
.id("filter-processor")
68+
.include("status:error")
69+
.type(
70+
ObservabilityPipelineFilterProcessorType
71+
.FILTER))))))
72+
.sources(
73+
Collections.singletonList(
74+
new ObservabilityPipelineConfigSourceItem(
75+
new ObservabilityPipelineDatadogAgentSource()
76+
.id("datadog-agent-source")
77+
.type(
78+
ObservabilityPipelineDatadogAgentSourceType
79+
.DATADOG_AGENT)))))
80+
.name("Pipeline with Splunk HEC token_strategy"))
81+
.type("pipelines"));
82+
83+
try {
84+
ValidationResponse result = apiInstance.validatePipeline(body);
85+
System.out.println(result);
86+
} catch (ApiException e) {
87+
System.err.println("Exception when calling ObservabilityPipelinesApi#validatePipeline");
88+
System.err.println("Status code: " + e.getCode());
89+
System.err.println("Reason: " + e.getResponseBody());
90+
System.err.println("Response headers: " + e.getResponseHeaders());
91+
e.printStackTrace();
92+
}
93+
}
94+
}
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
// Validate an observability pipeline with Splunk HEC source store_hec_token returns "OK" response
2+
3+
import com.datadog.api.client.ApiClient;
4+
import com.datadog.api.client.ApiException;
5+
import com.datadog.api.client.v2.api.ObservabilityPipelinesApi;
6+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfig;
7+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfigDestinationItem;
8+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfigProcessorGroup;
9+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfigProcessorItem;
10+
import com.datadog.api.client.v2.model.ObservabilityPipelineConfigSourceItem;
11+
import com.datadog.api.client.v2.model.ObservabilityPipelineDataAttributes;
12+
import com.datadog.api.client.v2.model.ObservabilityPipelineDatadogLogsDestination;
13+
import com.datadog.api.client.v2.model.ObservabilityPipelineDatadogLogsDestinationType;
14+
import com.datadog.api.client.v2.model.ObservabilityPipelineFilterProcessor;
15+
import com.datadog.api.client.v2.model.ObservabilityPipelineFilterProcessorType;
16+
import com.datadog.api.client.v2.model.ObservabilityPipelineSpec;
17+
import com.datadog.api.client.v2.model.ObservabilityPipelineSpecData;
18+
import com.datadog.api.client.v2.model.ObservabilityPipelineSplunkHecSource;
19+
import com.datadog.api.client.v2.model.ObservabilityPipelineSplunkHecSourceType;
20+
import com.datadog.api.client.v2.model.ValidationResponse;
21+
import java.util.Collections;
22+
23+
public class Example {
24+
public static void main(String[] args) {
25+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
26+
ObservabilityPipelinesApi apiInstance = new ObservabilityPipelinesApi(defaultClient);
27+
28+
ObservabilityPipelineSpec body =
29+
new ObservabilityPipelineSpec()
30+
.data(
31+
new ObservabilityPipelineSpecData()
32+
.attributes(
33+
new ObservabilityPipelineDataAttributes()
34+
.config(
35+
new ObservabilityPipelineConfig()
36+
.destinations(
37+
Collections.singletonList(
38+
new ObservabilityPipelineConfigDestinationItem(
39+
new ObservabilityPipelineDatadogLogsDestination()
40+
.id("datadog-logs-destination")
41+
.inputs(
42+
Collections.singletonList(
43+
"my-processor-group"))
44+
.type(
45+
ObservabilityPipelineDatadogLogsDestinationType
46+
.DATADOG_LOGS))))
47+
.processorGroups(
48+
Collections.singletonList(
49+
new ObservabilityPipelineConfigProcessorGroup()
50+
.enabled(true)
51+
.id("my-processor-group")
52+
.include("service:my-service")
53+
.inputs(
54+
Collections.singletonList("splunk-hec-source"))
55+
.processors(
56+
Collections.singletonList(
57+
new ObservabilityPipelineConfigProcessorItem(
58+
new ObservabilityPipelineFilterProcessor()
59+
.enabled(true)
60+
.id("filter-processor")
61+
.include("status:error")
62+
.type(
63+
ObservabilityPipelineFilterProcessorType
64+
.FILTER))))))
65+
.sources(
66+
Collections.singletonList(
67+
new ObservabilityPipelineConfigSourceItem(
68+
new ObservabilityPipelineSplunkHecSource()
69+
.id("splunk-hec-source")
70+
.type(
71+
ObservabilityPipelineSplunkHecSourceType
72+
.SPLUNK_HEC)
73+
.storeHecToken(true)))))
74+
.name("Pipeline with Splunk HEC store_hec_token"))
75+
.type("pipelines"));
76+
77+
try {
78+
ValidationResponse result = apiInstance.validatePipeline(body);
79+
System.out.println(result);
80+
} catch (ApiException e) {
81+
System.err.println("Exception when calling ObservabilityPipelinesApi#validatePipeline");
82+
System.err.println("Status code: " + e.getCode());
83+
System.err.println("Reason: " + e.getResponseBody());
84+
System.err.println("Response headers: " + e.getResponseHeaders());
85+
e.printStackTrace();
86+
}
87+
}
88+
}

0 commit comments

Comments
 (0)