Skip to content

Commit ae89412

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add Obs Pipelines Elasticsearch metrics destination and new fields (DataDog#3922)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent e3bf2a1 commit ae89412

6 files changed

Lines changed: 574 additions & 60 deletions

.generator/schemas/v2/openapi.yaml

Lines changed: 53 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43722,6 +43722,7 @@ components:
4372243722
ObservabilityPipelineConfigDestinationItem:
4372343723
description: "A destination for the pipeline."
4372443724
oneOf:
43725+
- $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestination"
4372543726
- $ref: "#/components/schemas/ObservabilityPipelineHttpClientDestination"
4372643727
- $ref: "#/components/schemas/ObservabilityPipelineAmazonOpenSearchDestination"
4372743728
- $ref: "#/components/schemas/ObservabilityPipelineAmazonS3Destination"
@@ -43731,7 +43732,6 @@ components:
4373143732
- $ref: "#/components/schemas/ObservabilityPipelineCloudPremDestination"
4373243733
- $ref: "#/components/schemas/ObservabilityPipelineCrowdStrikeNextGenSiemDestination"
4373343734
- $ref: "#/components/schemas/ObservabilityPipelineDatadogLogsDestination"
43734-
- $ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestination"
4373543735
- $ref: "#/components/schemas/ObservabilityPipelineGoogleChronicleDestination"
4373643736
- $ref: "#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestination"
4373743737
- $ref: "#/components/schemas/ObservabilityPipelineGooglePubSubDestination"
@@ -44333,9 +44333,9 @@ components:
4433344333
type: object
4433444334
ObservabilityPipelineElasticsearchDestination:
4433544335
description: |-
44336-
The `elasticsearch` destination writes logs to an Elasticsearch cluster.
44336+
The `elasticsearch` destination writes logs or metrics to an Elasticsearch cluster.
4433744337

44338-
**Supported pipeline types:** logs
44338+
**Supported pipeline types:** logs, metrics
4433944339
properties:
4434044340
api_version:
4434144341
$ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationApiVersion"
@@ -44344,9 +44344,11 @@ components:
4434444344
buffer:
4434544345
$ref: "#/components/schemas/ObservabilityPipelineBufferOptions"
4434644346
bulk_index:
44347-
description: The index to write logs to in Elasticsearch.
44347+
description: The name of the index to write events to in Elasticsearch.
4434844348
example: logs-index
4434944349
type: string
44350+
compression:
44351+
$ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationCompression"
4435044352
data_stream:
4435144353
$ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationDataStream"
4435244354
endpoint_url_key:
@@ -44357,21 +44359,34 @@ components:
4435744359
description: The unique identifier for this component.
4435844360
example: "elasticsearch-destination"
4435944361
type: string
44362+
id_key:
44363+
description: The name of the field used as the document ID in Elasticsearch.
44364+
example: id
44365+
type: string
4436044366
inputs:
4436144367
description: A list of component IDs whose output is used as the `input` for this component.
4436244368
example: ["filter-processor"]
4436344369
items:
4436444370
description: The ID of a component whose output is used as input for this destination.
4436544371
type: string
4436644372
type: array
44373+
pipeline:
44374+
description: The name of an Elasticsearch ingest pipeline to apply to events before indexing.
44375+
example: my-pipeline
44376+
type: string
44377+
request_retry_partial:
44378+
description: When `true`, retries failed partial bulk requests when some events in a batch fail while others succeed.
44379+
type: boolean
44380+
tls:
44381+
$ref: "#/components/schemas/ObservabilityPipelineTls"
4436744382
type:
4436844383
$ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationType"
4436944384
required:
4437044385
- id
4437144386
- type
4437244387
- inputs
4437344388
type: object
44374-
x-pipeline-types: [logs]
44389+
x-pipeline-types: [logs, metrics]
4437544390
ObservabilityPipelineElasticsearchDestinationApiVersion:
4437644391
description: The Elasticsearch API version to use. Set to `auto` to auto-detect.
4437744392
enum: [auto, v6, v7, v8]
@@ -44400,18 +44415,48 @@ components:
4440044415
required:
4440144416
- strategy
4440244417
type: object
44418+
ObservabilityPipelineElasticsearchDestinationCompression:
44419+
description: Compression configuration for the Elasticsearch destination.
44420+
properties:
44421+
algorithm:
44422+
$ref: "#/components/schemas/ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm"
44423+
level:
44424+
description: The compression level. Only applicable for `gzip`, `zlib`, and `zstd` algorithms.
44425+
example: 6
44426+
format: int64
44427+
type: integer
44428+
required:
44429+
- algorithm
44430+
type: object
44431+
ObservabilityPipelineElasticsearchDestinationCompressionAlgorithm:
44432+
description: The compression algorithm applied when sending data to Elasticsearch.
44433+
enum: [none, gzip, zlib, zstd, snappy]
44434+
example: gzip
44435+
type: string
44436+
x-enum-varnames:
44437+
- NONE
44438+
- GZIP
44439+
- ZLIB
44440+
- ZSTD
44441+
- SNAPPY
4440344442
ObservabilityPipelineElasticsearchDestinationDataStream:
4440444443
description: Configuration options for writing to Elasticsearch Data Streams instead of a fixed index.
4440544444
properties:
44445+
auto_routing:
44446+
description: When `true`, automatically routes events to the appropriate data stream based on the event content.
44447+
type: boolean
4440644448
dataset:
44407-
description: The data stream dataset for your logs. This groups logs by their source or application.
44449+
description: The data stream dataset. This groups events by their source or application.
4440844450
type: string
4440944451
dtype:
44410-
description: The data stream type for your logs. This determines how logs are categorized within the data stream.
44452+
description: The data stream type. This determines how events are categorized within the data stream.
4441144453
type: string
4441244454
namespace:
44413-
description: The data stream namespace for your logs. This separates logs into different environments or domains.
44455+
description: The data stream namespace. This separates events into different environments or domains.
4441444456
type: string
44457+
sync_fields:
44458+
description: When `true`, synchronizes data stream fields with the Elasticsearch index mapping.
44459+
type: boolean
4441544460
type: object
4441644461
ObservabilityPipelineElasticsearchDestinationType:
4441744462
default: elasticsearch

api/datadogV2/model_observability_pipeline_config_destination_item.go

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010

1111
// ObservabilityPipelineConfigDestinationItem - A destination for the pipeline.
1212
type ObservabilityPipelineConfigDestinationItem struct {
13+
ObservabilityPipelineElasticsearchDestination *ObservabilityPipelineElasticsearchDestination
1314
ObservabilityPipelineHttpClientDestination *ObservabilityPipelineHttpClientDestination
1415
ObservabilityPipelineAmazonOpenSearchDestination *ObservabilityPipelineAmazonOpenSearchDestination
1516
ObservabilityPipelineAmazonS3Destination *ObservabilityPipelineAmazonS3Destination
@@ -19,7 +20,6 @@ type ObservabilityPipelineConfigDestinationItem struct {
1920
ObservabilityPipelineCloudPremDestination *ObservabilityPipelineCloudPremDestination
2021
ObservabilityPipelineCrowdStrikeNextGenSiemDestination *ObservabilityPipelineCrowdStrikeNextGenSiemDestination
2122
ObservabilityPipelineDatadogLogsDestination *ObservabilityPipelineDatadogLogsDestination
22-
ObservabilityPipelineElasticsearchDestination *ObservabilityPipelineElasticsearchDestination
2323
ObservabilityPipelineGoogleChronicleDestination *ObservabilityPipelineGoogleChronicleDestination
2424
ObservabilityPipelineGoogleCloudStorageDestination *ObservabilityPipelineGoogleCloudStorageDestination
2525
ObservabilityPipelineGooglePubSubDestination *ObservabilityPipelineGooglePubSubDestination
@@ -39,6 +39,11 @@ type ObservabilityPipelineConfigDestinationItem struct {
3939
UnparsedObject interface{}
4040
}
4141

42+
// ObservabilityPipelineElasticsearchDestinationAsObservabilityPipelineConfigDestinationItem is a convenience function that returns ObservabilityPipelineElasticsearchDestination wrapped in ObservabilityPipelineConfigDestinationItem.
43+
func ObservabilityPipelineElasticsearchDestinationAsObservabilityPipelineConfigDestinationItem(v *ObservabilityPipelineElasticsearchDestination) ObservabilityPipelineConfigDestinationItem {
44+
return ObservabilityPipelineConfigDestinationItem{ObservabilityPipelineElasticsearchDestination: v}
45+
}
46+
4247
// ObservabilityPipelineHttpClientDestinationAsObservabilityPipelineConfigDestinationItem is a convenience function that returns ObservabilityPipelineHttpClientDestination wrapped in ObservabilityPipelineConfigDestinationItem.
4348
func ObservabilityPipelineHttpClientDestinationAsObservabilityPipelineConfigDestinationItem(v *ObservabilityPipelineHttpClientDestination) ObservabilityPipelineConfigDestinationItem {
4449
return ObservabilityPipelineConfigDestinationItem{ObservabilityPipelineHttpClientDestination: v}
@@ -84,11 +89,6 @@ func ObservabilityPipelineDatadogLogsDestinationAsObservabilityPipelineConfigDes
8489
return ObservabilityPipelineConfigDestinationItem{ObservabilityPipelineDatadogLogsDestination: v}
8590
}
8691

87-
// ObservabilityPipelineElasticsearchDestinationAsObservabilityPipelineConfigDestinationItem is a convenience function that returns ObservabilityPipelineElasticsearchDestination wrapped in ObservabilityPipelineConfigDestinationItem.
88-
func ObservabilityPipelineElasticsearchDestinationAsObservabilityPipelineConfigDestinationItem(v *ObservabilityPipelineElasticsearchDestination) ObservabilityPipelineConfigDestinationItem {
89-
return ObservabilityPipelineConfigDestinationItem{ObservabilityPipelineElasticsearchDestination: v}
90-
}
91-
9292
// ObservabilityPipelineGoogleChronicleDestinationAsObservabilityPipelineConfigDestinationItem is a convenience function that returns ObservabilityPipelineGoogleChronicleDestination wrapped in ObservabilityPipelineConfigDestinationItem.
9393
func ObservabilityPipelineGoogleChronicleDestinationAsObservabilityPipelineConfigDestinationItem(v *ObservabilityPipelineGoogleChronicleDestination) ObservabilityPipelineConfigDestinationItem {
9494
return ObservabilityPipelineConfigDestinationItem{ObservabilityPipelineGoogleChronicleDestination: v}
@@ -163,6 +163,23 @@ func ObservabilityPipelineDatadogMetricsDestinationAsObservabilityPipelineConfig
163163
func (obj *ObservabilityPipelineConfigDestinationItem) UnmarshalJSON(data []byte) error {
164164
var err error
165165
match := 0
166+
// try to unmarshal data into ObservabilityPipelineElasticsearchDestination
167+
err = datadog.Unmarshal(data, &obj.ObservabilityPipelineElasticsearchDestination)
168+
if err == nil {
169+
if obj.ObservabilityPipelineElasticsearchDestination != nil && obj.ObservabilityPipelineElasticsearchDestination.UnparsedObject == nil {
170+
jsonObservabilityPipelineElasticsearchDestination, _ := datadog.Marshal(obj.ObservabilityPipelineElasticsearchDestination)
171+
if string(jsonObservabilityPipelineElasticsearchDestination) == "{}" { // empty struct
172+
obj.ObservabilityPipelineElasticsearchDestination = nil
173+
} else {
174+
match++
175+
}
176+
} else {
177+
obj.ObservabilityPipelineElasticsearchDestination = nil
178+
}
179+
} else {
180+
obj.ObservabilityPipelineElasticsearchDestination = nil
181+
}
182+
166183
// try to unmarshal data into ObservabilityPipelineHttpClientDestination
167184
err = datadog.Unmarshal(data, &obj.ObservabilityPipelineHttpClientDestination)
168185
if err == nil {
@@ -316,23 +333,6 @@ func (obj *ObservabilityPipelineConfigDestinationItem) UnmarshalJSON(data []byte
316333
obj.ObservabilityPipelineDatadogLogsDestination = nil
317334
}
318335

319-
// try to unmarshal data into ObservabilityPipelineElasticsearchDestination
320-
err = datadog.Unmarshal(data, &obj.ObservabilityPipelineElasticsearchDestination)
321-
if err == nil {
322-
if obj.ObservabilityPipelineElasticsearchDestination != nil && obj.ObservabilityPipelineElasticsearchDestination.UnparsedObject == nil {
323-
jsonObservabilityPipelineElasticsearchDestination, _ := datadog.Marshal(obj.ObservabilityPipelineElasticsearchDestination)
324-
if string(jsonObservabilityPipelineElasticsearchDestination) == "{}" { // empty struct
325-
obj.ObservabilityPipelineElasticsearchDestination = nil
326-
} else {
327-
match++
328-
}
329-
} else {
330-
obj.ObservabilityPipelineElasticsearchDestination = nil
331-
}
332-
} else {
333-
obj.ObservabilityPipelineElasticsearchDestination = nil
334-
}
335-
336336
// try to unmarshal data into ObservabilityPipelineGoogleChronicleDestination
337337
err = datadog.Unmarshal(data, &obj.ObservabilityPipelineGoogleChronicleDestination)
338338
if err == nil {
@@ -573,6 +573,7 @@ func (obj *ObservabilityPipelineConfigDestinationItem) UnmarshalJSON(data []byte
573573

574574
if match != 1 { // more than 1 match
575575
// reset to nil
576+
obj.ObservabilityPipelineElasticsearchDestination = nil
576577
obj.ObservabilityPipelineHttpClientDestination = nil
577578
obj.ObservabilityPipelineAmazonOpenSearchDestination = nil
578579
obj.ObservabilityPipelineAmazonS3Destination = nil
@@ -582,7 +583,6 @@ func (obj *ObservabilityPipelineConfigDestinationItem) UnmarshalJSON(data []byte
582583
obj.ObservabilityPipelineCloudPremDestination = nil
583584
obj.ObservabilityPipelineCrowdStrikeNextGenSiemDestination = nil
584585
obj.ObservabilityPipelineDatadogLogsDestination = nil
585-
obj.ObservabilityPipelineElasticsearchDestination = nil
586586
obj.ObservabilityPipelineGoogleChronicleDestination = nil
587587
obj.ObservabilityPipelineGoogleCloudStorageDestination = nil
588588
obj.ObservabilityPipelineGooglePubSubDestination = nil
@@ -604,6 +604,10 @@ func (obj *ObservabilityPipelineConfigDestinationItem) UnmarshalJSON(data []byte
604604

605605
// MarshalJSON turns data from the first non-nil pointers in the struct to JSON.
606606
func (obj ObservabilityPipelineConfigDestinationItem) MarshalJSON() ([]byte, error) {
607+
if obj.ObservabilityPipelineElasticsearchDestination != nil {
608+
return datadog.Marshal(&obj.ObservabilityPipelineElasticsearchDestination)
609+
}
610+
607611
if obj.ObservabilityPipelineHttpClientDestination != nil {
608612
return datadog.Marshal(&obj.ObservabilityPipelineHttpClientDestination)
609613
}
@@ -640,10 +644,6 @@ func (obj ObservabilityPipelineConfigDestinationItem) MarshalJSON() ([]byte, err
640644
return datadog.Marshal(&obj.ObservabilityPipelineDatadogLogsDestination)
641645
}
642646

643-
if obj.ObservabilityPipelineElasticsearchDestination != nil {
644-
return datadog.Marshal(&obj.ObservabilityPipelineElasticsearchDestination)
645-
}
646-
647647
if obj.ObservabilityPipelineGoogleChronicleDestination != nil {
648648
return datadog.Marshal(&obj.ObservabilityPipelineGoogleChronicleDestination)
649649
}
@@ -708,6 +708,10 @@ func (obj ObservabilityPipelineConfigDestinationItem) MarshalJSON() ([]byte, err
708708

709709
// GetActualInstance returns the actual instance.
710710
func (obj *ObservabilityPipelineConfigDestinationItem) GetActualInstance() interface{} {
711+
if obj.ObservabilityPipelineElasticsearchDestination != nil {
712+
return obj.ObservabilityPipelineElasticsearchDestination
713+
}
714+
711715
if obj.ObservabilityPipelineHttpClientDestination != nil {
712716
return obj.ObservabilityPipelineHttpClientDestination
713717
}
@@ -744,10 +748,6 @@ func (obj *ObservabilityPipelineConfigDestinationItem) GetActualInstance() inter
744748
return obj.ObservabilityPipelineDatadogLogsDestination
745749
}
746750

747-
if obj.ObservabilityPipelineElasticsearchDestination != nil {
748-
return obj.ObservabilityPipelineElasticsearchDestination
749-
}
750-
751751
if obj.ObservabilityPipelineGoogleChronicleDestination != nil {
752752
return obj.ObservabilityPipelineGoogleChronicleDestination
753753
}

0 commit comments

Comments
 (0)