Skip to content

Commit b7eed31

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add sample_attribute to log exclusion filter (#3330)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent 995d280 commit b7eed31

File tree

6 files changed

+30
-8
lines changed

6 files changed

+30
-8
lines changed

.generator/schemas/v1/openapi.yaml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5931,6 +5931,12 @@ components:
59315931
Scope down exclusion filter to only a subset of logs with a log query.
59325932
example: "*"
59335933
type: string
5934+
sample_attribute:
5935+
description: |-
5936+
Sample attribute to use for the sampling of logs going through this exclusion filter.
5937+
When set, only the logs with the specified attribute are sampled.
5938+
example: "@ci.job_id"
5939+
type: string
59345940
sample_rate:
59355941
description: |-
59365942
Sample rate to apply to logs going through this exclusion filter,
@@ -29896,7 +29902,7 @@ paths:
2989629902
Update an index as identified by its name.
2989729903
Returns the Index object passed in the request body when the request is successful.
2989829904

29899-
Using the `PUT` method updates your indexs configuration by **replacing**
29905+
Using the `PUT` method updates your index's configuration by **replacing**
2990029906
your current configuration with the new one sent to your Datadog organization.
2990129907
operationId: UpdateLogsIndex
2990229908
parameters:

examples/v1/logs-indexes/CreateLogsIndex.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
LogsExclusion(
2222
filter=LogsExclusionFilter(
2323
query="*",
24+
sample_attribute="@ci.job_id",
2425
sample_rate=1.0,
2526
),
2627
name="payment",

examples/v1/logs-indexes/UpdateLogsIndex.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
LogsExclusion(
2323
filter=LogsExclusionFilter(
2424
query="*",
25+
sample_attribute="@ci.job_id",
2526
sample_rate=1.0,
2627
),
2728
name="payment",

src/datadog_api_client/v1/api/logs_indexes_api.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ def update_logs_index(
254254
Update an index as identified by its name.
255255
Returns the Index object passed in the request body when the request is successful.
256256
257-
Using the ``PUT`` method updates your indexs configuration by **replacing**
257+
Using the ``PUT`` method updates your index's configuration by **replacing**
258258
your current configuration with the new one sent to your Datadog organization.
259259
260260
:param name: Name of the log index.

src/datadog_api_client/v1/model/logs_exclusion_filter.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,28 +18,42 @@ class LogsExclusionFilter(ModelNormal):
1818
def openapi_types(_):
1919
return {
2020
"query": (str,),
21+
"sample_attribute": (str,),
2122
"sample_rate": (float,),
2223
}
2324

2425
attribute_map = {
2526
"query": "query",
27+
"sample_attribute": "sample_attribute",
2628
"sample_rate": "sample_rate",
2729
}
2830

29-
def __init__(self_, sample_rate: float, query: Union[str, UnsetType] = unset, **kwargs):
31+
def __init__(
32+
self_,
33+
sample_rate: float,
34+
query: Union[str, UnsetType] = unset,
35+
sample_attribute: Union[str, UnsetType] = unset,
36+
**kwargs,
37+
):
3038
"""
3139
Exclusion filter is defined by a query, a sampling rule, and a active/inactive toggle.
3240
3341
:param query: Default query is ``*`` , meaning all logs flowing in the index would be excluded.
3442
Scope down exclusion filter to only a subset of logs with a log query.
3543
:type query: str, optional
3644
45+
:param sample_attribute: Sample attribute to use for the sampling of logs going through this exclusion filter.
46+
When set, only the logs with the specified attribute are sampled.
47+
:type sample_attribute: str, optional
48+
3749
:param sample_rate: Sample rate to apply to logs going through this exclusion filter,
3850
a value of 1.0 excludes all logs matching the query.
3951
:type sample_rate: float
4052
"""
4153
if query is not unset:
4254
kwargs["query"] = query
55+
if sample_attribute is not unset:
56+
kwargs["sample_attribute"] = sample_attribute
4357
super().__init__(kwargs)
4458

4559
self_.sample_rate = sample_rate

tests/v1/features/logs_indexes.feature

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,21 @@ Feature: Logs Indexes
1111
@generated @skip @team:DataDog/logs-backend @team:DataDog/logs-core
1212
Scenario: Create an index returns "Invalid Parameter Error" response
1313
Given new "CreateLogsIndex" request
14-
And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "exclusion_filters": [{"filter": {"query": "*", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "name": "main", "num_flex_logs_retention_days": 360, "num_retention_days": 15, "tags": ["team:backend", "env:production"]}
14+
And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "exclusion_filters": [{"filter": {"query": "*", "sample_attribute": "@ci.job_id", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "name": "main", "num_flex_logs_retention_days": 360, "num_retention_days": 15, "tags": ["team:backend", "env:production"]}
1515
When the request is sent
1616
Then the response status is 400 Invalid Parameter Error
1717

1818
@generated @skip @team:DataDog/logs-backend @team:DataDog/logs-core
1919
Scenario: Create an index returns "OK" response
2020
Given new "CreateLogsIndex" request
21-
And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "exclusion_filters": [{"filter": {"query": "*", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "name": "main", "num_flex_logs_retention_days": 360, "num_retention_days": 15, "tags": ["team:backend", "env:production"]}
21+
And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "exclusion_filters": [{"filter": {"query": "*", "sample_attribute": "@ci.job_id", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "name": "main", "num_flex_logs_retention_days": 360, "num_retention_days": 15, "tags": ["team:backend", "env:production"]}
2222
When the request is sent
2323
Then the response status is 200 OK
2424

2525
@generated @skip @team:DataDog/logs-backend @team:DataDog/logs-core
2626
Scenario: Create an index returns "Unprocessable Entity" response
2727
Given new "CreateLogsIndex" request
28-
And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "exclusion_filters": [{"filter": {"query": "*", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "name": "main", "num_flex_logs_retention_days": 360, "num_retention_days": 15, "tags": ["team:backend", "env:production"]}
28+
And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "exclusion_filters": [{"filter": {"query": "*", "sample_attribute": "@ci.job_id", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "name": "main", "num_flex_logs_retention_days": 360, "num_retention_days": 15, "tags": ["team:backend", "env:production"]}
2929
When the request is sent
3030
Then the response status is 422 Unprocessable Entity
3131

@@ -73,15 +73,15 @@ Feature: Logs Indexes
7373
Scenario: Update an index returns "Invalid Parameter Error" response
7474
Given new "UpdateLogsIndex" request
7575
And request contains "name" parameter from "REPLACE.ME"
76-
And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "disable_daily_limit": false, "exclusion_filters": [{"filter": {"query": "*", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "num_flex_logs_retention_days": 360, "num_retention_days": 15, "tags": ["team:backend", "env:production"]}
76+
And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "disable_daily_limit": false, "exclusion_filters": [{"filter": {"query": "*", "sample_attribute": "@ci.job_id", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "num_flex_logs_retention_days": 360, "num_retention_days": 15, "tags": ["team:backend", "env:production"]}
7777
When the request is sent
7878
Then the response status is 400 Invalid Parameter Error
7979

8080
@generated @skip @team:DataDog/logs-backend @team:DataDog/logs-core
8181
Scenario: Update an index returns "OK" response
8282
Given new "UpdateLogsIndex" request
8383
And request contains "name" parameter from "REPLACE.ME"
84-
And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "disable_daily_limit": false, "exclusion_filters": [{"filter": {"query": "*", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "num_flex_logs_retention_days": 360, "num_retention_days": 15, "tags": ["team:backend", "env:production"]}
84+
And body with value {"daily_limit": 300000000, "daily_limit_reset": {"reset_time": "14:00", "reset_utc_offset": "+02:00"}, "daily_limit_warning_threshold_percentage": 70, "disable_daily_limit": false, "exclusion_filters": [{"filter": {"query": "*", "sample_attribute": "@ci.job_id", "sample_rate": 1.0}, "name": "payment"}], "filter": {"query": "source:python"}, "num_flex_logs_retention_days": 360, "num_retention_days": 15, "tags": ["team:backend", "env:production"]}
8585
When the request is sent
8686
Then the response status is 200 OK
8787

0 commit comments

Comments
 (0)