Skip to content

Commit 1df4959

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Regenerate client from commit 9a06a25 of spec repo (#3978)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent b699ba7 commit 1df4959

4 files changed

Lines changed: 530 additions & 17 deletions

File tree

.generator/schemas/v2/openapi.yaml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61211,6 +61211,7 @@ components:
6121161211
- $ref: "#/components/schemas/ObservabilityPipelineDedupeProcessor"
6121261212
- $ref: "#/components/schemas/ObservabilityPipelineEnrichmentTableProcessor"
6121361213
- $ref: "#/components/schemas/ObservabilityPipelineGenerateMetricsProcessor"
61214+
- $ref: "#/components/schemas/ObservabilityPipelineGenerateMetricsV2Processor"
6121461215
- $ref: "#/components/schemas/ObservabilityPipelineOcsfMapperProcessor"
6121561216
- $ref: "#/components/schemas/ObservabilityPipelineParseGrokProcessor"
6121661217
- $ref: "#/components/schemas/ObservabilityPipelineParseJSONProcessor"
@@ -62350,6 +62351,50 @@ components:
6235062351
type: string
6235162352
x-enum-varnames:
6235262353
- GENERATE_DATADOG_METRICS
62354+
ObservabilityPipelineGenerateMetricsV2Processor:
62355+
description: |-
62356+
The `generate_metrics` processor creates custom metrics from logs.
62357+
Metrics can be counters, gauges, or distributions and optionally grouped by log fields.
62358+
The generated metrics must be routed to a metrics destination using the input `<processor-id>.metrics`.
62359+
62360+
**Supported pipeline types:** logs
62361+
properties:
62362+
display_name:
62363+
$ref: "#/components/schemas/ObservabilityPipelineComponentDisplayName"
62364+
enabled:
62365+
description: Indicates whether the processor is enabled.
62366+
example: true
62367+
type: boolean
62368+
id:
62369+
description: The unique identifier for this component. Used to reference this component in other parts of the pipeline.
62370+
example: generate-metrics-processor
62371+
type: string
62372+
include:
62373+
description: A Datadog search query used to determine which logs this processor targets.
62374+
example: "service:my-service"
62375+
type: string
62376+
metrics:
62377+
description: Configuration for generating individual metrics.
62378+
items:
62379+
$ref: "#/components/schemas/ObservabilityPipelineGeneratedMetric"
62380+
type: array
62381+
type:
62382+
$ref: "#/components/schemas/ObservabilityPipelineGenerateMetricsV2ProcessorType"
62383+
required:
62384+
- id
62385+
- type
62386+
- enabled
62387+
type: object
62388+
x-pipeline-types: [logs]
62389+
ObservabilityPipelineGenerateMetricsV2ProcessorType:
62390+
default: generate_metrics
62391+
description: The processor type. Always `generate_metrics`.
62392+
enum:
62393+
- generate_metrics
62394+
example: generate_metrics
62395+
type: string
62396+
x-enum-varnames:
62397+
- GENERATE_METRICS
6235362398
ObservabilityPipelineGeneratedMetric:
6235462399
description: |-
6235562400
Defines a log-based custom metric, including its name, type, filter, value computation strategy,

src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineConfigProcessorItem.java

Lines changed: 102 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -545,6 +545,59 @@ public ObservabilityPipelineConfigProcessorItem deserialize(
545545
e);
546546
}
547547

548+
// deserialize ObservabilityPipelineGenerateMetricsV2Processor
549+
try {
550+
boolean attemptParsing = true;
551+
// ensure that we respect type coercion as set on the client ObjectMapper
552+
if (ObservabilityPipelineGenerateMetricsV2Processor.class.equals(Integer.class)
553+
|| ObservabilityPipelineGenerateMetricsV2Processor.class.equals(Long.class)
554+
|| ObservabilityPipelineGenerateMetricsV2Processor.class.equals(Float.class)
555+
|| ObservabilityPipelineGenerateMetricsV2Processor.class.equals(Double.class)
556+
|| ObservabilityPipelineGenerateMetricsV2Processor.class.equals(Boolean.class)
557+
|| ObservabilityPipelineGenerateMetricsV2Processor.class.equals(String.class)) {
558+
attemptParsing = typeCoercion;
559+
if (!attemptParsing) {
560+
attemptParsing |=
561+
((ObservabilityPipelineGenerateMetricsV2Processor.class.equals(Integer.class)
562+
|| ObservabilityPipelineGenerateMetricsV2Processor.class.equals(Long.class))
563+
&& token == JsonToken.VALUE_NUMBER_INT);
564+
attemptParsing |=
565+
((ObservabilityPipelineGenerateMetricsV2Processor.class.equals(Float.class)
566+
|| ObservabilityPipelineGenerateMetricsV2Processor.class.equals(
567+
Double.class))
568+
&& (token == JsonToken.VALUE_NUMBER_FLOAT
569+
|| token == JsonToken.VALUE_NUMBER_INT));
570+
attemptParsing |=
571+
(ObservabilityPipelineGenerateMetricsV2Processor.class.equals(Boolean.class)
572+
&& (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
573+
attemptParsing |=
574+
(ObservabilityPipelineGenerateMetricsV2Processor.class.equals(String.class)
575+
&& token == JsonToken.VALUE_STRING);
576+
}
577+
}
578+
if (attemptParsing) {
579+
tmp =
580+
tree.traverse(jp.getCodec())
581+
.readValueAs(ObservabilityPipelineGenerateMetricsV2Processor.class);
582+
// TODO: there is no validation against JSON schema constraints
583+
// (min, max, enum, pattern...), this does not perform a strict JSON
584+
// validation, which means the 'match' count may be higher than it should be.
585+
if (!((ObservabilityPipelineGenerateMetricsV2Processor) tmp).unparsed) {
586+
deserialized = tmp;
587+
match++;
588+
}
589+
log.log(
590+
Level.FINER,
591+
"Input data matches schema 'ObservabilityPipelineGenerateMetricsV2Processor'");
592+
}
593+
} catch (Exception e) {
594+
// deserialization failed, continue
595+
log.log(
596+
Level.FINER,
597+
"Input data does not match schema 'ObservabilityPipelineGenerateMetricsV2Processor'",
598+
e);
599+
}
600+
548601
// deserialize ObservabilityPipelineOcsfMapperProcessor
549602
try {
550603
boolean attemptParsing = true;
@@ -1491,6 +1544,12 @@ public ObservabilityPipelineConfigProcessorItem(ObservabilityPipelineGenerateMet
14911544
setActualInstance(o);
14921545
}
14931546

1547+
public ObservabilityPipelineConfigProcessorItem(
1548+
ObservabilityPipelineGenerateMetricsV2Processor o) {
1549+
super("oneOf", Boolean.FALSE);
1550+
setActualInstance(o);
1551+
}
1552+
14941553
public ObservabilityPipelineConfigProcessorItem(ObservabilityPipelineOcsfMapperProcessor o) {
14951554
super("oneOf", Boolean.FALSE);
14961555
setActualInstance(o);
@@ -1607,6 +1666,9 @@ public ObservabilityPipelineConfigProcessorItem(
16071666
schemas.put(
16081667
"ObservabilityPipelineGenerateMetricsProcessor",
16091668
new GenericType<ObservabilityPipelineGenerateMetricsProcessor>() {});
1669+
schemas.put(
1670+
"ObservabilityPipelineGenerateMetricsV2Processor",
1671+
new GenericType<ObservabilityPipelineGenerateMetricsV2Processor>() {});
16101672
schemas.put(
16111673
"ObservabilityPipelineOcsfMapperProcessor",
16121674
new GenericType<ObservabilityPipelineOcsfMapperProcessor>() {});
@@ -1674,14 +1736,15 @@ public Map<String, GenericType> getSchemas() {
16741736
* ObservabilityPipelineAddHostnameProcessor, ObservabilityPipelineCustomProcessor,
16751737
* ObservabilityPipelineDatadogTagsProcessor, ObservabilityPipelineDedupeProcessor,
16761738
* ObservabilityPipelineEnrichmentTableProcessor, ObservabilityPipelineGenerateMetricsProcessor,
1677-
* ObservabilityPipelineOcsfMapperProcessor, ObservabilityPipelineParseGrokProcessor,
1678-
* ObservabilityPipelineParseJSONProcessor, ObservabilityPipelineParseXMLProcessor,
1679-
* ObservabilityPipelineQuotaProcessor, ObservabilityPipelineReduceProcessor,
1680-
* ObservabilityPipelineRemoveFieldsProcessor, ObservabilityPipelineRenameFieldsProcessor,
1681-
* ObservabilityPipelineSampleProcessor, ObservabilityPipelineSensitiveDataScannerProcessor,
1682-
* ObservabilityPipelineSplitArrayProcessor, ObservabilityPipelineThrottleProcessor,
1683-
* ObservabilityPipelineAddMetricTagsProcessor, ObservabilityPipelineAggregateProcessor,
1684-
* ObservabilityPipelineMetricTagsProcessor, ObservabilityPipelineRenameMetricTagsProcessor,
1739+
* ObservabilityPipelineGenerateMetricsV2Processor, ObservabilityPipelineOcsfMapperProcessor,
1740+
* ObservabilityPipelineParseGrokProcessor, ObservabilityPipelineParseJSONProcessor,
1741+
* ObservabilityPipelineParseXMLProcessor, ObservabilityPipelineQuotaProcessor,
1742+
* ObservabilityPipelineReduceProcessor, ObservabilityPipelineRemoveFieldsProcessor,
1743+
* ObservabilityPipelineRenameFieldsProcessor, ObservabilityPipelineSampleProcessor,
1744+
* ObservabilityPipelineSensitiveDataScannerProcessor, ObservabilityPipelineSplitArrayProcessor,
1745+
* ObservabilityPipelineThrottleProcessor, ObservabilityPipelineAddMetricTagsProcessor,
1746+
* ObservabilityPipelineAggregateProcessor, ObservabilityPipelineMetricTagsProcessor,
1747+
* ObservabilityPipelineRenameMetricTagsProcessor,
16851748
* ObservabilityPipelineTagCardinalityLimitProcessor
16861749
*
16871750
* <p>It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be a
@@ -1734,6 +1797,11 @@ public void setActualInstance(Object instance) {
17341797
super.setActualInstance(instance);
17351798
return;
17361799
}
1800+
if (JSON.isInstanceOf(
1801+
ObservabilityPipelineGenerateMetricsV2Processor.class, instance, new HashSet<Class<?>>())) {
1802+
super.setActualInstance(instance);
1803+
return;
1804+
}
17371805
if (JSON.isInstanceOf(
17381806
ObservabilityPipelineOcsfMapperProcessor.class, instance, new HashSet<Class<?>>())) {
17391807
super.setActualInstance(instance);
@@ -1835,6 +1903,7 @@ public void setActualInstance(Object instance) {
18351903
+ " ObservabilityPipelineDatadogTagsProcessor, ObservabilityPipelineDedupeProcessor,"
18361904
+ " ObservabilityPipelineEnrichmentTableProcessor,"
18371905
+ " ObservabilityPipelineGenerateMetricsProcessor,"
1906+
+ " ObservabilityPipelineGenerateMetricsV2Processor,"
18381907
+ " ObservabilityPipelineOcsfMapperProcessor, ObservabilityPipelineParseGrokProcessor,"
18391908
+ " ObservabilityPipelineParseJSONProcessor, ObservabilityPipelineParseXMLProcessor,"
18401909
+ " ObservabilityPipelineQuotaProcessor, ObservabilityPipelineReduceProcessor,"
@@ -1854,22 +1923,24 @@ public void setActualInstance(Object instance) {
18541923
* ObservabilityPipelineAddHostnameProcessor, ObservabilityPipelineCustomProcessor,
18551924
* ObservabilityPipelineDatadogTagsProcessor, ObservabilityPipelineDedupeProcessor,
18561925
* ObservabilityPipelineEnrichmentTableProcessor, ObservabilityPipelineGenerateMetricsProcessor,
1857-
* ObservabilityPipelineOcsfMapperProcessor, ObservabilityPipelineParseGrokProcessor,
1858-
* ObservabilityPipelineParseJSONProcessor, ObservabilityPipelineParseXMLProcessor,
1859-
* ObservabilityPipelineQuotaProcessor, ObservabilityPipelineReduceProcessor,
1860-
* ObservabilityPipelineRemoveFieldsProcessor, ObservabilityPipelineRenameFieldsProcessor,
1861-
* ObservabilityPipelineSampleProcessor, ObservabilityPipelineSensitiveDataScannerProcessor,
1862-
* ObservabilityPipelineSplitArrayProcessor, ObservabilityPipelineThrottleProcessor,
1863-
* ObservabilityPipelineAddMetricTagsProcessor, ObservabilityPipelineAggregateProcessor,
1864-
* ObservabilityPipelineMetricTagsProcessor, ObservabilityPipelineRenameMetricTagsProcessor,
1926+
* ObservabilityPipelineGenerateMetricsV2Processor, ObservabilityPipelineOcsfMapperProcessor,
1927+
* ObservabilityPipelineParseGrokProcessor, ObservabilityPipelineParseJSONProcessor,
1928+
* ObservabilityPipelineParseXMLProcessor, ObservabilityPipelineQuotaProcessor,
1929+
* ObservabilityPipelineReduceProcessor, ObservabilityPipelineRemoveFieldsProcessor,
1930+
* ObservabilityPipelineRenameFieldsProcessor, ObservabilityPipelineSampleProcessor,
1931+
* ObservabilityPipelineSensitiveDataScannerProcessor, ObservabilityPipelineSplitArrayProcessor,
1932+
* ObservabilityPipelineThrottleProcessor, ObservabilityPipelineAddMetricTagsProcessor,
1933+
* ObservabilityPipelineAggregateProcessor, ObservabilityPipelineMetricTagsProcessor,
1934+
* ObservabilityPipelineRenameMetricTagsProcessor,
18651935
* ObservabilityPipelineTagCardinalityLimitProcessor
18661936
*
18671937
* @return The actual instance (ObservabilityPipelineFilterProcessor,
18681938
* ObservabilityPipelineAddEnvVarsProcessor, ObservabilityPipelineAddFieldsProcessor,
18691939
* ObservabilityPipelineAddHostnameProcessor, ObservabilityPipelineCustomProcessor,
18701940
* ObservabilityPipelineDatadogTagsProcessor, ObservabilityPipelineDedupeProcessor,
18711941
* ObservabilityPipelineEnrichmentTableProcessor,
1872-
* ObservabilityPipelineGenerateMetricsProcessor, ObservabilityPipelineOcsfMapperProcessor,
1942+
* ObservabilityPipelineGenerateMetricsProcessor,
1943+
* ObservabilityPipelineGenerateMetricsV2Processor, ObservabilityPipelineOcsfMapperProcessor,
18731944
* ObservabilityPipelineParseGrokProcessor, ObservabilityPipelineParseJSONProcessor,
18741945
* ObservabilityPipelineParseXMLProcessor, ObservabilityPipelineQuotaProcessor,
18751946
* ObservabilityPipelineReduceProcessor, ObservabilityPipelineRemoveFieldsProcessor,
@@ -1997,6 +2068,20 @@ public ObservabilityPipelineDedupeProcessor getObservabilityPipelineDedupeProces
19972068
return (ObservabilityPipelineGenerateMetricsProcessor) super.getActualInstance();
19982069
}
19992070

2071+
/**
2072+
* Get the actual instance of `ObservabilityPipelineGenerateMetricsV2Processor`. If the actual
2073+
* instance is not `ObservabilityPipelineGenerateMetricsV2Processor`, the ClassCastException will
2074+
* be thrown.
2075+
*
2076+
* @return The actual instance of `ObservabilityPipelineGenerateMetricsV2Processor`
2077+
* @throws ClassCastException if the instance is not
2078+
* `ObservabilityPipelineGenerateMetricsV2Processor`
2079+
*/
2080+
public ObservabilityPipelineGenerateMetricsV2Processor
2081+
getObservabilityPipelineGenerateMetricsV2Processor() throws ClassCastException {
2082+
return (ObservabilityPipelineGenerateMetricsV2Processor) super.getActualInstance();
2083+
}
2084+
20002085
/**
20012086
* Get the actual instance of `ObservabilityPipelineOcsfMapperProcessor`. If the actual instance
20022087
* is not `ObservabilityPipelineOcsfMapperProcessor`, the ClassCastException will be thrown.

0 commit comments

Comments
 (0)