Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions .generator/schemas/v2/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55577,6 +55577,7 @@ components:
- $ref: "#/components/schemas/ObservabilityPipelineSyslogNgDestination"
- $ref: "#/components/schemas/ObservabilityPipelineDatabricksZerobusDestination"
- $ref: "#/components/schemas/ObservabilityPipelineDatadogMetricsDestination"
- $ref: "#/components/schemas/ObservabilityPipelineSplunkHecMetricsDestination"
ObservabilityPipelineConfigPipelineType:
default: logs
description: The type of data being ingested. Defaults to `logs` if not specified.
Expand Down Expand Up @@ -59698,6 +59699,81 @@ components:
type: string
x-enum-varnames:
- SPLUNK_HEC
ObservabilityPipelineSplunkHecMetricsDestination:
description: |-
The `splunk_hec_metrics` destination forwards metrics to Splunk using the HTTP Event Collector (HEC).

**Supported pipeline types:** metrics
properties:
buffer:
$ref: "#/components/schemas/ObservabilityPipelineBufferOptions"
compression:
$ref: "#/components/schemas/ObservabilityPipelineSplunkHecMetricsDestinationCompression"
default_namespace:
description: Optional default namespace for metrics sent to Splunk HEC.
example: "custom_namespace"
type: string
endpoint_url_key:
description: Name of the environment variable or secret that holds the Splunk HEC endpoint URL.
example: SPLUNK_HEC_ENDPOINT_URL
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: splunk-hec-metrics-destination
type: string
index:
description: Optional name of the Splunk index where metrics are written.
example: "metrics"
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
source:
description: The Splunk source field value for metric events.
example: "observability_pipelines"
type: string
sourcetype:
description: The Splunk sourcetype to assign to metric events.
example: "custom_sourcetype"
type: string
tls:
$ref: "#/components/schemas/ObservabilityPipelineTls"
token_key:
description: Name of the environment variable or secret that holds the Splunk HEC token.
example: SPLUNK_HEC_TOKEN
type: string
type:
$ref: "#/components/schemas/ObservabilityPipelineSplunkHecMetricsDestinationType"
required:
- id
- type
- inputs
type: object
x-pipeline-types: [metrics]
ObservabilityPipelineSplunkHecMetricsDestinationCompression:
default: none
description: Compression algorithm applied when sending metrics to Splunk HEC.
enum:
- none
- gzip
example: none
type: string
x-enum-varnames:
- NONE
- GZIP
ObservabilityPipelineSplunkHecMetricsDestinationType:
default: splunk_hec_metrics
description: The destination type. Always `splunk_hec_metrics`.
enum:
- splunk_hec_metrics
example: splunk_hec_metrics
type: string
x-enum-varnames:
- SPLUNK_HEC_METRICS
ObservabilityPipelineSplunkHecSource:
description: |-
The `splunk_hec` source implements the Splunk HTTP Event Collector (HEC) API.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ type ObservabilityPipelineConfigDestinationItem struct {
ObservabilityPipelineSyslogNgDestination *ObservabilityPipelineSyslogNgDestination
ObservabilityPipelineDatabricksZerobusDestination *ObservabilityPipelineDatabricksZerobusDestination
ObservabilityPipelineDatadogMetricsDestination *ObservabilityPipelineDatadogMetricsDestination
ObservabilityPipelineSplunkHecMetricsDestination *ObservabilityPipelineSplunkHecMetricsDestination

// UnparsedObject contains the raw value of the object if there was an error when deserializing into the struct
UnparsedObject interface{}
Expand Down Expand Up @@ -165,6 +166,11 @@ func ObservabilityPipelineDatadogMetricsDestinationAsObservabilityPipelineConfig
return ObservabilityPipelineConfigDestinationItem{ObservabilityPipelineDatadogMetricsDestination: v}
}

// ObservabilityPipelineSplunkHecMetricsDestinationAsObservabilityPipelineConfigDestinationItem is a convenience function that returns ObservabilityPipelineSplunkHecMetricsDestination wrapped in ObservabilityPipelineConfigDestinationItem.
func ObservabilityPipelineSplunkHecMetricsDestinationAsObservabilityPipelineConfigDestinationItem(v *ObservabilityPipelineSplunkHecMetricsDestination) ObservabilityPipelineConfigDestinationItem {
return ObservabilityPipelineConfigDestinationItem{ObservabilityPipelineSplunkHecMetricsDestination: v}
}

// UnmarshalJSON turns data into one of the pointers in the struct.
func (obj *ObservabilityPipelineConfigDestinationItem) UnmarshalJSON(data []byte) error {
var err error
Expand Down Expand Up @@ -594,6 +600,23 @@ func (obj *ObservabilityPipelineConfigDestinationItem) UnmarshalJSON(data []byte
obj.ObservabilityPipelineDatadogMetricsDestination = nil
}

// try to unmarshal data into ObservabilityPipelineSplunkHecMetricsDestination
err = datadog.Unmarshal(data, &obj.ObservabilityPipelineSplunkHecMetricsDestination)
if err == nil {
if obj.ObservabilityPipelineSplunkHecMetricsDestination != nil && obj.ObservabilityPipelineSplunkHecMetricsDestination.UnparsedObject == nil {
jsonObservabilityPipelineSplunkHecMetricsDestination, _ := datadog.Marshal(obj.ObservabilityPipelineSplunkHecMetricsDestination)
if string(jsonObservabilityPipelineSplunkHecMetricsDestination) == "{}" { // empty struct
obj.ObservabilityPipelineSplunkHecMetricsDestination = nil
} else {
match++
}
} else {
obj.ObservabilityPipelineSplunkHecMetricsDestination = nil
}
} else {
obj.ObservabilityPipelineSplunkHecMetricsDestination = nil
}

if match != 1 { // more than 1 match
// reset to nil
obj.ObservabilityPipelineElasticsearchDestination = nil
Expand Down Expand Up @@ -621,6 +644,7 @@ func (obj *ObservabilityPipelineConfigDestinationItem) UnmarshalJSON(data []byte
obj.ObservabilityPipelineSyslogNgDestination = nil
obj.ObservabilityPipelineDatabricksZerobusDestination = nil
obj.ObservabilityPipelineDatadogMetricsDestination = nil
obj.ObservabilityPipelineSplunkHecMetricsDestination = nil
return datadog.Unmarshal(data, &obj.UnparsedObject)
}
return nil // exactly one match
Expand Down Expand Up @@ -728,6 +752,10 @@ func (obj ObservabilityPipelineConfigDestinationItem) MarshalJSON() ([]byte, err
return datadog.Marshal(&obj.ObservabilityPipelineDatadogMetricsDestination)
}

if obj.ObservabilityPipelineSplunkHecMetricsDestination != nil {
return datadog.Marshal(&obj.ObservabilityPipelineSplunkHecMetricsDestination)
}

if obj.UnparsedObject != nil {
return datadog.Marshal(obj.UnparsedObject)
}
Expand Down Expand Up @@ -836,6 +864,10 @@ func (obj *ObservabilityPipelineConfigDestinationItem) GetActualInstance() inter
return obj.ObservabilityPipelineDatadogMetricsDestination
}

if obj.ObservabilityPipelineSplunkHecMetricsDestination != nil {
return obj.ObservabilityPipelineSplunkHecMetricsDestination
}

// all schemas are nil
return nil
}
Loading
Loading