Skip to content
Merged
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
101 changes: 101 additions & 0 deletions .generator/schemas/v1/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7534,6 +7534,104 @@ components:
- data_source
- query
type: object
MonitorFormulaAndFunctionDataQualityDataSource:
description: Data source for data quality queries.
enum:
- data_quality_metrics
example: data_quality_metrics
type: string
x-enum-varnames:
- DATA_QUALITY_METRICS
MonitorFormulaAndFunctionDataQualityMeasure:
description: 'The data quality measure to query. Common values include:

`bytes`, `cardinality`, `custom`, `freshness`, `max`, `mean`, `min`,

`nullness`, `percent_negative`, `percent_zero`, `row_count`, `stddev`,

`sum`, `uniqueness`. Additional values may be supported.'
example: row_count
type: string
MonitorFormulaAndFunctionDataQualityModelTypeOverride:
description: Override for the model type used in anomaly detection.
enum:
- freshness
- percentage
- any
type: string
x-enum-varnames:
- FRESHNESS
- PERCENTAGE
- ANY
MonitorFormulaAndFunctionDataQualityMonitorOptions:
description: Monitor configuration options for data quality queries.
properties:
crontab_override:
description: Crontab expression to override the default schedule.
example: '* * * 10'
type: string
custom_sql:
description: Custom SQL query for the monitor.
example: SELECT COUNT(*) FROM users AS dd_value
type: string
custom_where:
description: Custom WHERE clause for the query.
example: USER_ID = 123
type: string
group_by_columns:
description: Columns to group results by.
example:
- col1
- col2
items:
type: string
type: array
model_type_override:
$ref: '#/components/schemas/MonitorFormulaAndFunctionDataQualityModelTypeOverride'
type: object
MonitorFormulaAndFunctionDataQualityQueryDefinition:
description: A formula and functions data quality query.
properties:
data_source:
$ref: '#/components/schemas/MonitorFormulaAndFunctionDataQualityDataSource'
filter:
description: Filter expression used to match on data entities. Uses Aastra
query syntax.
example: search for column where `database:production AND table:users`
type: string
group_by:
description: Optional grouping fields for aggregation.
example:
- entity_id
items:
type: string
type: array
measure:
$ref: '#/components/schemas/MonitorFormulaAndFunctionDataQualityMeasure'
monitor_options:
$ref: '#/components/schemas/MonitorFormulaAndFunctionDataQualityMonitorOptions'
name:
description: Name of the query for use in formulas.
example: query1
type: string
schema_version:
description: Schema version for the data quality query.
example: 0.0.1
type: string
scope:
description: 'Optional scoping expression to further filter metrics. Uses
metrics filter syntax.

This is useful when an entity has been configured to emit metrics with
additional tags.'
example: env:production
type: string
required:
- name
- data_source
- measure
- filter
type: object
MonitorFormulaAndFunctionEventAggregation:
description: Aggregation methods for event platform queries.
enum:
Expand Down Expand Up @@ -7685,6 +7783,7 @@ components:
oneOf:
- $ref: '#/components/schemas/MonitorFormulaAndFunctionEventQueryDefinition'
- $ref: '#/components/schemas/MonitorFormulaAndFunctionCostQueryDefinition'
- $ref: '#/components/schemas/MonitorFormulaAndFunctionDataQualityQueryDefinition'
MonitorGroupSearchResponse:
description: The response of a monitor group search.
example:
Expand Down Expand Up @@ -8523,6 +8622,7 @@ components:
- database-monitoring alert
- network-performance alert
- cost alert
- data-quality alert
example: query alert
type: string
x-enum-varnames:
Expand All @@ -8545,6 +8645,7 @@ components:
- DATABASE_MONITORING_ALERT
- NETWORK_PERFORMANCE_ALERT
- COST_ALERT
- DATA_QUALITY_ALERT
MonitorUpdateRequest:
description: Object describing a monitor update request.
properties:
Expand Down
28 changes: 28 additions & 0 deletions docs/datadog_api_client.v1.model.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2293,6 +2293,34 @@ datadog\_api\_client.v1.model.monitor\_formula\_and\_function\_cost\_query\_defi
:members:
:show-inheritance:

datadog\_api\_client.v1.model.monitor\_formula\_and\_function\_data\_quality\_data\_source module
-------------------------------------------------------------------------------------------------

.. automodule:: datadog_api_client.v1.model.monitor_formula_and_function_data_quality_data_source
:members:
:show-inheritance:

datadog\_api\_client.v1.model.monitor\_formula\_and\_function\_data\_quality\_model\_type\_override module
----------------------------------------------------------------------------------------------------------

.. automodule:: datadog_api_client.v1.model.monitor_formula_and_function_data_quality_model_type_override
:members:
:show-inheritance:

datadog\_api\_client.v1.model.monitor\_formula\_and\_function\_data\_quality\_monitor\_options module
-----------------------------------------------------------------------------------------------------

.. automodule:: datadog_api_client.v1.model.monitor_formula_and_function_data_quality_monitor_options
:members:
:show-inheritance:

datadog\_api\_client.v1.model.monitor\_formula\_and\_function\_data\_quality\_query\_definition module
------------------------------------------------------------------------------------------------------

.. automodule:: datadog_api_client.v1.model.monitor_formula_and_function_data_quality_query_definition
:members:
:show-inheritance:

datadog\_api\_client.v1.model.monitor\_formula\_and\_function\_event\_aggregation module
----------------------------------------------------------------------------------------

Expand Down
51 changes: 51 additions & 0 deletions examples/v1/monitors/CreateMonitor_3626832481.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
"""
Create a Data Quality monitor returns "OK" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v1.api.monitors_api import MonitorsApi
from datadog_api_client.v1.model.monitor import Monitor
from datadog_api_client.v1.model.monitor_formula_and_function_data_quality_data_source import (
MonitorFormulaAndFunctionDataQualityDataSource,
)
from datadog_api_client.v1.model.monitor_formula_and_function_data_quality_query_definition import (
MonitorFormulaAndFunctionDataQualityQueryDefinition,
)
from datadog_api_client.v1.model.monitor_options import MonitorOptions
from datadog_api_client.v1.model.monitor_thresholds import MonitorThresholds
from datadog_api_client.v1.model.monitor_type import MonitorType

body = Monitor(
name="Example-Monitor",
type=MonitorType.DATA_QUALITY_ALERT,
query='formula("query1").last("5m") > 100',
message="Data quality alert triggered",
tags=[
"test:examplemonitor",
"env:ci",
],
priority=3,
options=MonitorOptions(
thresholds=MonitorThresholds(
critical=100.0,
),
variables=[
MonitorFormulaAndFunctionDataQualityQueryDefinition(
name="query1",
data_source=MonitorFormulaAndFunctionDataQualityDataSource.DATA_QUALITY_METRICS,
measure="row_count",
filter="search for column where `database:production AND table:users`",
group_by=[
"entity_id",
],
),
],
),
)

configuration = Configuration()
with ApiClient(configuration) as api_client:
api_instance = MonitorsApi(api_client)
response = api_instance.create_monitor(body=body)

print(response)
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
# This product includes software developed at Datadog (https://www.datadoghq.com/).
# Copyright 2019-Present Datadog, Inc.
from __future__ import annotations


from datadog_api_client.model_utils import (
ModelSimple,
cached_property,
)

from typing import ClassVar


class MonitorFormulaAndFunctionDataQualityDataSource(ModelSimple):
"""
Data source for data quality queries.

:param value: If omitted defaults to "data_quality_metrics". Must be one of ["data_quality_metrics"].
:type value: str
"""

allowed_values = {
"data_quality_metrics",
}
DATA_QUALITY_METRICS: ClassVar["MonitorFormulaAndFunctionDataQualityDataSource"]

@cached_property
def openapi_types(_):
return {
"value": (str,),
}


MonitorFormulaAndFunctionDataQualityDataSource.DATA_QUALITY_METRICS = MonitorFormulaAndFunctionDataQualityDataSource(
"data_quality_metrics"
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
# This product includes software developed at Datadog (https://www.datadoghq.com/).
# Copyright 2019-Present Datadog, Inc.
from __future__ import annotations


from datadog_api_client.model_utils import (
ModelSimple,
cached_property,
)

from typing import ClassVar


class MonitorFormulaAndFunctionDataQualityModelTypeOverride(ModelSimple):
"""
Override for the model type used in anomaly detection.

:param value: Must be one of ["freshness", "percentage", "any"].
:type value: str
"""

allowed_values = {
"freshness",
"percentage",
"any",
}
FRESHNESS: ClassVar["MonitorFormulaAndFunctionDataQualityModelTypeOverride"]
PERCENTAGE: ClassVar["MonitorFormulaAndFunctionDataQualityModelTypeOverride"]
ANY: ClassVar["MonitorFormulaAndFunctionDataQualityModelTypeOverride"]

@cached_property
def openapi_types(_):
return {
"value": (str,),
}


MonitorFormulaAndFunctionDataQualityModelTypeOverride.FRESHNESS = MonitorFormulaAndFunctionDataQualityModelTypeOverride(
"freshness"
)
MonitorFormulaAndFunctionDataQualityModelTypeOverride.PERCENTAGE = (
MonitorFormulaAndFunctionDataQualityModelTypeOverride("percentage")
)
MonitorFormulaAndFunctionDataQualityModelTypeOverride.ANY = MonitorFormulaAndFunctionDataQualityModelTypeOverride("any")
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
# This product includes software developed at Datadog (https://www.datadoghq.com/).
# Copyright 2019-Present Datadog, Inc.
from __future__ import annotations

from typing import List, Union, TYPE_CHECKING

from datadog_api_client.model_utils import (
ModelNormal,
cached_property,
unset,
UnsetType,
)


if TYPE_CHECKING:
from datadog_api_client.v1.model.monitor_formula_and_function_data_quality_model_type_override import (
MonitorFormulaAndFunctionDataQualityModelTypeOverride,
)


class MonitorFormulaAndFunctionDataQualityMonitorOptions(ModelNormal):
@cached_property
def openapi_types(_):
from datadog_api_client.v1.model.monitor_formula_and_function_data_quality_model_type_override import (
MonitorFormulaAndFunctionDataQualityModelTypeOverride,
)

return {
"crontab_override": (str,),
"custom_sql": (str,),
"custom_where": (str,),
"group_by_columns": ([str],),
"model_type_override": (MonitorFormulaAndFunctionDataQualityModelTypeOverride,),
}

attribute_map = {
"crontab_override": "crontab_override",
"custom_sql": "custom_sql",
"custom_where": "custom_where",
"group_by_columns": "group_by_columns",
"model_type_override": "model_type_override",
}

def __init__(
self_,
crontab_override: Union[str, UnsetType] = unset,
custom_sql: Union[str, UnsetType] = unset,
custom_where: Union[str, UnsetType] = unset,
group_by_columns: Union[List[str], UnsetType] = unset,
model_type_override: Union[MonitorFormulaAndFunctionDataQualityModelTypeOverride, UnsetType] = unset,
**kwargs,
):
"""
Monitor configuration options for data quality queries.

:param crontab_override: Crontab expression to override the default schedule.
:type crontab_override: str, optional

:param custom_sql: Custom SQL query for the monitor.
:type custom_sql: str, optional

:param custom_where: Custom WHERE clause for the query.
:type custom_where: str, optional

:param group_by_columns: Columns to group results by.
:type group_by_columns: [str], optional

:param model_type_override: Override for the model type used in anomaly detection.
:type model_type_override: MonitorFormulaAndFunctionDataQualityModelTypeOverride, optional
"""
if crontab_override is not unset:
kwargs["crontab_override"] = crontab_override
if custom_sql is not unset:
kwargs["custom_sql"] = custom_sql
if custom_where is not unset:
kwargs["custom_where"] = custom_where
if group_by_columns is not unset:
kwargs["group_by_columns"] = group_by_columns
if model_type_override is not unset:
kwargs["model_type_override"] = model_type_override
super().__init__(kwargs)
Loading