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
4 changes: 4 additions & 0 deletions mergify/datadog_checks/mergify/config_models/defaults.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ def instance_empty_default_hostname():
return False


def instance_enable_legacy_tags_normalization():
return True


def instance_mergify_api_url():
return 'https://api.mergify.com'

Expand Down
1 change: 1 addition & 0 deletions mergify/datadog_checks/mergify/config_models/instance.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ class InstanceConfig(BaseModel):
)
disable_generic_tags: Optional[bool] = None
empty_default_hostname: Optional[bool] = None
enable_legacy_tags_normalization: Optional[bool] = None
mergify_api_url: Optional[str] = None
metric_patterns: Optional[MetricPatterns] = None
min_collection_interval: Optional[float] = None
Expand Down
4 changes: 4 additions & 0 deletions ocient/datadog_checks/ocient/config_models/defaults.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@ def instance_enable_health_service_check():
return True


def instance_enable_legacy_tags_normalization():
return True


def instance_histogram_buckets_as_distributions():
return False

Expand Down
14 changes: 13 additions & 1 deletion ocient/datadog_checks/ocient/config_models/instance.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,19 @@
from typing import Any, Optional, Union

from pydantic import BaseModel, ConfigDict, Field, field_validator, model_validator
from typing_extensions import Literal

from datadog_checks.base.utils.functions import identity
from datadog_checks.base.utils.models import validation

from . import defaults, validators


SECURE_FIELD_NAMES = frozenset(
['auth_token', 'kerberos_cache', 'kerberos_keytab', 'tls_ca_cert', 'tls_cert', 'tls_private_key']
)


class AuthToken(BaseModel):
model_config = ConfigDict(
arbitrary_types_allowed=True,
Expand Down Expand Up @@ -93,6 +99,7 @@ class InstanceConfig(BaseModel):
disable_generic_tags: Optional[bool] = None
empty_default_hostname: Optional[bool] = None
enable_health_service_check: Optional[bool] = None
enable_legacy_tags_normalization: Optional[bool] = None
exclude_labels: Optional[tuple[str, ...]] = None
exclude_metrics: Optional[tuple[str, ...]] = None
exclude_metrics_by_labels: Optional[MappingProxyType[str, Union[bool, tuple[str, ...]]]] = None
Expand All @@ -105,7 +112,7 @@ class InstanceConfig(BaseModel):
ignore_connection_errors: Optional[bool] = None
ignore_tags: Optional[tuple[str, ...]] = None
include_labels: Optional[tuple[str, ...]] = None
kerberos_auth: Optional[str] = None
kerberos_auth: Optional[Literal['required', 'optional', 'disabled']] = None
kerberos_cache: Optional[str] = None
kerberos_delegate: Optional[bool] = None
kerberos_force_initiate: Optional[bool] = None
Expand Down Expand Up @@ -158,6 +165,11 @@ def _validate(cls, value, info):
field_name = field.alias or info.field_name
if field_name in info.context['configured_fields']:
value = getattr(validators, f'instance_{info.field_name}', identity)(value, field=field)

if info.field_name in SECURE_FIELD_NAMES:
validation.security.check_field_trusted_provider(
info.field_name, value, info.context.get('security_config')
)
else:
value = getattr(defaults, f'instance_{info.field_name}', lambda: value)()

Expand Down
1 change: 1 addition & 0 deletions ocient/datadog_checks/ocient/data/conf.yaml.example
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ instances:
## @param exclude_metrics - list of strings - optional
## A list of metrics to exclude, with each entry being either
## the exact metric name or a regular expression.
##
## In order to exclude all metrics but the ones matching a specific filter,
## you can use a negative lookahead regex like:
## - ^(?!foo).*$
Expand Down
4 changes: 4 additions & 0 deletions qdrant/datadog_checks/qdrant/config_models/defaults.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@ def instance_enable_health_service_check():
return True


def instance_enable_legacy_tags_normalization():
return True


def instance_histogram_buckets_as_distributions():
return False

Expand Down
11 changes: 11 additions & 0 deletions qdrant/datadog_checks/qdrant/config_models/instance.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@
from . import defaults, validators


SECURE_FIELD_NAMES = frozenset(
['auth_token', 'kerberos_cache', 'kerberos_keytab', 'tls_ca_cert', 'tls_cert', 'tls_private_key']
)


class AuthToken(BaseModel):
model_config = ConfigDict(
arbitrary_types_allowed=True,
Expand Down Expand Up @@ -94,6 +99,7 @@ class InstanceConfig(BaseModel):
disable_generic_tags: Optional[bool] = None
empty_default_hostname: Optional[bool] = None
enable_health_service_check: Optional[bool] = None
enable_legacy_tags_normalization: Optional[bool] = None
exclude_labels: Optional[tuple[str, ...]] = None
exclude_metrics: Optional[tuple[str, ...]] = None
exclude_metrics_by_labels: Optional[MappingProxyType[str, Union[bool, tuple[str, ...]]]] = None
Expand Down Expand Up @@ -159,6 +165,11 @@ def _validate(cls, value, info):
field_name = field.alias or info.field_name
if field_name in info.context['configured_fields']:
value = getattr(validators, f'instance_{info.field_name}', identity)(value, field=field)

if info.field_name in SECURE_FIELD_NAMES:
validation.security.check_field_trusted_provider(
info.field_name, value, info.context.get('security_config')
)
else:
value = getattr(defaults, f'instance_{info.field_name}', lambda: value)()

Expand Down
1 change: 1 addition & 0 deletions qdrant/datadog_checks/qdrant/data/conf.yaml.example
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ instances:
## @param exclude_metrics - list of strings - optional
## A list of metrics to exclude, with each entry being either
## the exact metric name or a regular expression.
##
## In order to exclude all metrics but the ones matching a specific filter,
## you can use a negative lookahead regex like:
## - ^(?!foo).*$
Expand Down
4 changes: 2 additions & 2 deletions redis_cloud/datadog_checks/redis_cloud/check.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ def __init__(self, name, init_config, instances):
def _parse_config(self):
self.scraper_configs = []
metrics_endpoint = self.instance.get('openmetrics_endpoint')
metrics = self.get_default_config()
metrics = self.get_default_metrics()

additional = []
groups = self.instance.get('extra_metrics', [])
Expand Down Expand Up @@ -49,7 +49,7 @@ def _parse_config(self):
config.update(self.instance)
self.scraper_configs.append(config)

def get_default_config(self):
def get_default_metrics(self):
metrics = []
for dm in DEFAULT_METRICS:
metrics.append(dm)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@ def instance_enable_health_service_check():
return True


def instance_enable_legacy_tags_normalization():
return True


def instance_histogram_buckets_as_distributions():
return False

Expand Down
14 changes: 13 additions & 1 deletion redis_cloud/datadog_checks/redis_cloud/config_models/instance.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,19 @@
from typing import Any, Optional, Union

from pydantic import BaseModel, ConfigDict, Field, field_validator, model_validator
from typing_extensions import Literal

from datadog_checks.base.utils.functions import identity
from datadog_checks.base.utils.models import validation

from . import defaults, validators


SECURE_FIELD_NAMES = frozenset(
['auth_token', 'kerberos_cache', 'kerberos_keytab', 'tls_ca_cert', 'tls_cert', 'tls_private_key']
)


class AuthToken(BaseModel):
model_config = ConfigDict(
arbitrary_types_allowed=True,
Expand Down Expand Up @@ -93,6 +99,7 @@ class InstanceConfig(BaseModel):
disable_generic_tags: Optional[bool] = None
empty_default_hostname: Optional[bool] = None
enable_health_service_check: Optional[bool] = None
enable_legacy_tags_normalization: Optional[bool] = None
exclude_labels: Optional[tuple[str, ...]] = None
exclude_metrics: Optional[tuple[str, ...]] = None
exclude_metrics_by_labels: Optional[MappingProxyType[str, Union[bool, tuple[str, ...]]]] = None
Expand All @@ -105,7 +112,7 @@ class InstanceConfig(BaseModel):
ignore_connection_errors: Optional[bool] = None
ignore_tags: Optional[tuple[str, ...]] = None
include_labels: Optional[tuple[str, ...]] = None
kerberos_auth: Optional[str] = None
kerberos_auth: Optional[Literal['required', 'optional', 'disabled']] = None
kerberos_cache: Optional[str] = None
kerberos_delegate: Optional[bool] = None
kerberos_force_initiate: Optional[bool] = None
Expand Down Expand Up @@ -158,6 +165,11 @@ def _validate(cls, value, info):
field_name = field.alias or info.field_name
if field_name in info.context['configured_fields']:
value = getattr(validators, f'instance_{info.field_name}', identity)(value, field=field)

if info.field_name in SECURE_FIELD_NAMES:
validation.security.check_field_trusted_provider(
info.field_name, value, info.context.get('security_config')
)
else:
value = getattr(defaults, f'instance_{info.field_name}', lambda: value)()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ instances:
## @param exclude_metrics - list of strings - optional
## A list of metrics to exclude, with each entry being either
## the exact metric name or a regular expression.
##
## In order to exclude all metrics but the ones matching a specific filter,
## you can use a negative lookahead regex like:
## - ^(?!foo).*$
Expand Down
4 changes: 2 additions & 2 deletions redis_enterprise/datadog_checks/redis_enterprise/check.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ def _parse_config(self):
self.scraper_configs = []
metrics_endpoint = self.instance.get('openmetrics_endpoint')
self.instance.setdefault("tls_verify", True)
metrics = self.get_default_config()
metrics = self.get_default_metrics()

additional = []
groups = self.instance.get('extra_metrics', [])
Expand Down Expand Up @@ -50,7 +50,7 @@ def _parse_config(self):
config.update(self.instance)
self.scraper_configs.append(config)

def get_default_config(self):
def get_default_metrics(self):
metrics = []
for dm in DEFAULT_METRICS:
metrics.append(dm)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@ def instance_enable_health_service_check():
return True


def instance_enable_legacy_tags_normalization():
return True


def instance_histogram_buckets_as_distributions():
return False

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,19 @@
from typing import Any, Optional, Union

from pydantic import BaseModel, ConfigDict, Field, field_validator, model_validator
from typing_extensions import Literal

from datadog_checks.base.utils.functions import identity
from datadog_checks.base.utils.models import validation

from . import defaults, validators


SECURE_FIELD_NAMES = frozenset(
['auth_token', 'kerberos_cache', 'kerberos_keytab', 'tls_ca_cert', 'tls_cert', 'tls_private_key']
)


class AuthToken(BaseModel):
model_config = ConfigDict(
arbitrary_types_allowed=True,
Expand Down Expand Up @@ -93,6 +99,7 @@ class InstanceConfig(BaseModel):
disable_generic_tags: Optional[bool] = None
empty_default_hostname: Optional[bool] = None
enable_health_service_check: Optional[bool] = None
enable_legacy_tags_normalization: Optional[bool] = None
exclude_labels: Optional[tuple[str, ...]] = None
exclude_metrics: Optional[tuple[str, ...]] = None
exclude_metrics_by_labels: Optional[MappingProxyType[str, Union[bool, tuple[str, ...]]]] = None
Expand All @@ -105,7 +112,7 @@ class InstanceConfig(BaseModel):
ignore_connection_errors: Optional[bool] = None
ignore_tags: Optional[tuple[str, ...]] = None
include_labels: Optional[tuple[str, ...]] = None
kerberos_auth: Optional[str] = None
kerberos_auth: Optional[Literal['required', 'optional', 'disabled']] = None
kerberos_cache: Optional[str] = None
kerberos_delegate: Optional[bool] = None
kerberos_force_initiate: Optional[bool] = None
Expand Down Expand Up @@ -158,6 +165,11 @@ def _validate(cls, value, info):
field_name = field.alias or info.field_name
if field_name in info.context['configured_fields']:
value = getattr(validators, f'instance_{info.field_name}', identity)(value, field=field)

if info.field_name in SECURE_FIELD_NAMES:
validation.security.check_field_trusted_provider(
info.field_name, value, info.context.get('security_config')
)
else:
value = getattr(defaults, f'instance_{info.field_name}', lambda: value)()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ instances:
## @param exclude_metrics - list of strings - optional
## A list of metrics to exclude, with each entry being either
## the exact metric name or a regular expression.
##
## In order to exclude all metrics but the ones matching a specific filter,
## you can use a negative lookahead regex like:
## - ^(?!foo).*$
Expand Down
1 change: 1 addition & 0 deletions redpanda/datadog_checks/redpanda/data/conf.yaml.example
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ instances:
## @param exclude_metrics - list of strings - optional
## A list of metrics to exclude, with each entry being either
## the exact metric name or a regular expression.
##
## In order to exclude all metrics but the ones matching a specific filter,
## you can use a negative lookahead regex like:
## - ^(?!foo).*$
Expand Down
Loading