From 39db3ed85e1023d79d7f5ed2da0a824a154f6392 Mon Sep 17 00:00:00 2001 From: Albert Vaca Cintora Date: Fri, 29 May 2026 13:40:09 +0200 Subject: [PATCH 1/6] Fix incorrectly escaped dollar signs in nginx config (#23793) The backslashes here were not escaping anything, instead being treated as literal backslashes that would show up in the logs. --- nginx/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nginx/README.md b/nginx/README.md index d91e3ff28b157..02a504a9bea5a 100644 --- a/nginx/README.md +++ b/nginx/README.md @@ -215,9 +215,9 @@ _Available for Agent versions >6.0_ ```conf http { #recommended log format - log_format nginx '\$remote_addr - \$remote_user [\$time_local] ' - '"\$request" \$status \$body_bytes_sent \$request_time ' - '"\$http_referer" "\$http_user_agent"'; + log_format nginx '$remote_addr - $remote_user [$time_local] ' + '"$request" $status $body_bytes_sent $request_time ' + '"$http_referer" "$http_user_agent"'; access_log /var/log/nginx/access.log; } From b1d8c8d81a1addf6a1422c9f0712cf5eeb98bfee Mon Sep 17 00:00:00 2001 From: Juanpe Araque Date: Fri, 29 May 2026 14:23:09 +0100 Subject: [PATCH 2/6] Add cron utility (CronExpression, CronScheduler) to datadog_checks_base (#23741) * Add CronExpression and CronScheduler utilities to datadog_checks_base CronExpression parses a standard 5-field UTC cron string and computes the next/previous scheduled tick relative to any timestamp. CronScheduler wraps an expression with a non-blocking 'has my tick elapsed?' state machine designed to be polled once per AgentCheck.check() invocation, with an optional startup_lookback for recovering a missed tick across check restarts. Supports *, n, n-m, n,m,k, */k, and n-m/k in each field, plus 7 as a Sunday alias for day-of-week. Vixie OR semantics for day-of-month vs. day-of-week when both are restricted. * Add changelog entry for cron utility * Fix N/step cron semantics, tighten error types, derive equality from parsed fields - N/step in a single-integer base now extends to the field's high (Vixie semantics): "5/15 * * * *" fires {5, 20, 35, 50} instead of {5}. - CronExpression raises TypeError for non-string input and ValueError for all malformed expressions, including parse-time rejection of DOM/month combos that can never fire ("0 0 31 2 *"). - Equality and hashing derive from the parsed fields, so "0 0 * * 7" and "0 0 * * 0" compare equal. - _jump_month iterates self._months directly to match the other _jump_* helpers; the _roll_month helper is removed. - CronScheduler.due_ticks returns list[float] matching the materialised behaviour; the typing.Iterator alias drops with it. - Rename test helpers to their fully spelled form (utc_timestamp, iso_format, BASE_TIMESTAMP); drop em-dashes and motivational framing from comments and docstrings. * Promote MAX_DAYS_PER_MONTH to module scope and tighten DOM/month guard - Move the per-month max-day table from inside _reject_unsatisfiable_dom_month to a module-level MAX_DAYS_PER_MONTH constant, alongside the other range constants. - Short-circuit _reject_unsatisfiable_dom_month when DOM is unrestricted as well: only the DOM-restricted + DOW-unrestricted case can be impossible at parse time. - Add a NEXT_PREV_CASES row that crosses a month boundary backward while Vixie OR semantics are active ("0 0 31 1 3" anchored in Feb 2026), pinning the interaction between _jump_month and _day_matches. - Drop the now-redundant list(...) wrappers around CronScheduler.due_ticks calls in the scheduler tests; due_ticks already returns list[float]. * Split _parse_field into single-purpose helpers and align backward jumps - _parse_field now returns only the sorted values tuple; the is_restricted flag was discarded by three of five call sites. CronExpression.__init__ computes _dom_restricted and _dow_restricted directly from the raw fields where the Vixie OR rule actually needs them. - _parse_field delegates to four helpers, each with a single responsibility: _expand_chunk: one comma piece, with optional /step _split_step: extracts and validates /step _parse_base: dispatches between '*', 'n-m', and 'n' _parse_range: parses an 'n-m' inclusive range Each helper raises with its own context so error messages still pinpoint the specific malformation. - _jump_hour and _jump_minute backward paths now use self._minutes[-1] (and self._hours[-1]) instead of hardcoded 59/23 when crossing a boundary, so a sparse-minute schedule does not need an extra walk iteration to recover. * Add edge-case tests adapted from croniter's test suite Covers behavior surface our parser claims to support but had no dedicated test: - Duplicate and overlapping values in comma lists normalize to the same parsed form (e.g. "5,5,1-6 * * * *" equals "1-6 * * * *"). - Vixie OR with stepped DOM and a weekday ("0 16 */2 * 6"), pinning the interaction between */k expansion in DOM and DOW match in _day_matches. - next_tick and previous_tick around stepped DOM ("5 0 */2 * *") from an even-numbered day where the anchor itself does not match. - previous_tick crossing into the previous month with a simple DOM ("0 0 22 * *" anchored mid-March -> 22 February). - Weekend DOW list ("0 0 * * 0,6") matching the most recent Sat/Sun in both directions. - Comma list in the month field ("0 0 1 1,3,6,9,12 *") rolling forward and backward across allowed months. * Reject cron expressions with whitespace inside fields A field like "1, 1, 3,3" looks at a glance like one comma list, but the spaces split it into multiple whitespace-separated fields, so the overall expression no longer has five fields. The parser already rejects this correctly via the field-count check; pinning the behaviour here covers the common ways a user might accidentally introduce intra-field whitespace (after a comma, before a comma, around a dash). * Accept whitespace around commas in cron fields A field like "1, 2, 3" is visually unambiguous: the writer means a comma list. The previous parser was strict and rejected it as multiple whitespace-separated fields. Normalise whitespace adjacent to commas before splitting into fields, so "0 0 1 1, 2, 3 *" parses the same as "0 0 1 1,2,3 *". Dashes stay strict ("1- 3" is more likely a typo than a style choice, so it is still rejected). * Reject any whitespace inside a cron field The previous commit accepted whitespace around commas but not around dashes, which is inconsistent: every kind of intra-field whitespace has only one plausible reading (the punctuation it sits next to), so "unambiguous to a human" applies the same way to "1, 2" and "1- 3". A single strict rule (no whitespace inside fields) gives the user the same clear failure for every variant and matches standard cron, croniter, and systemd timers. * Slim MAX_DAYS_PER_MONTH to non-31 months and merge tick-table tests - Drop the always-31 entries from MAX_DAYS_PER_MONTH and look them up via .get(month, 31) so the table communicates "31 is the rule, these are the exceptions." Add a short comment explaining why February uses 29. - Collapse test_next_tick and test_previous_tick into a single test_bracketing_ticks with the cases inlined into the parametrize block. Removes the top-level NEXT_PREV_CASES constant and the underscore-prefixed unused arguments, while preserving the joint (prev, next) specification at each anchor. Failure messages now name the broken direction. * Share a single parser between construction and is_valid - Extract _parse() as the one grammar both __init__ and is_valid use, so is_valid validates without instantiating a CronExpression. - Explain the scheduling sense of "due" in the due_ticks docstring. * Drop is_valid; document walk budget and CronExpression exceptions - Remove the is_valid predicate and update tests to validate through the constructor. - Add a comment explaining WALK_ITERATION_BUDGET. - Document the ValueError and TypeError CronExpression raises on bad input. --- datadog_checks_base/changelog.d/23741.added | 1 + .../datadog_checks/base/utils/cron.py | 378 +++++++++++++ .../tests/base/utils/test_cron.py | 520 ++++++++++++++++++ 3 files changed, 899 insertions(+) create mode 100644 datadog_checks_base/changelog.d/23741.added create mode 100644 datadog_checks_base/datadog_checks/base/utils/cron.py create mode 100644 datadog_checks_base/tests/base/utils/test_cron.py diff --git a/datadog_checks_base/changelog.d/23741.added b/datadog_checks_base/changelog.d/23741.added new file mode 100644 index 0000000000000..069f5faaf08c5 --- /dev/null +++ b/datadog_checks_base/changelog.d/23741.added @@ -0,0 +1 @@ +Add ``CronExpression`` and ``CronScheduler`` utilities for cron-style scheduling inside check methods. diff --git a/datadog_checks_base/datadog_checks/base/utils/cron.py b/datadog_checks_base/datadog_checks/base/utils/cron.py new file mode 100644 index 0000000000000..c13064c43e1f2 --- /dev/null +++ b/datadog_checks_base/datadog_checks/base/utils/cron.py @@ -0,0 +1,378 @@ +# (C) Datadog, Inc. 2026-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) +"""Standard 5-field UTC cron expression parsing and scheduling. + +* ``CronExpression`` is the stateless tick calculator. Parse once, then ask + for the next or previous tick relative to any timestamp. +* ``CronScheduler`` wraps an expression with state to report which scheduled + ticks have elapsed since the last call. + +Only the standard 5-field syntax (minute hour day-of-month month day-of-week) +in UTC is supported. ``@``-aliases, seconds, year, month/day name aliases, +and ``L``/``W``/``#`` extensions are rejected at parse time. +""" + +from __future__ import annotations + +import time +from calendar import monthrange +from datetime import datetime, timedelta, timezone +from typing import NamedTuple + +UTC = timezone.utc + +MINUTE_RANGE = (0, 59) +HOUR_RANGE = (0, 23) +DOM_RANGE = (1, 31) +MONTH_RANGE = (1, 12) +DOW_RANGE = (0, 7) + +# Months not listed default to 31. February is 29 because the parser has no +# year context, so any expression that wants to fire on the 29th in a leap year +# must be accepted. +MAX_DAYS_PER_MONTH = {2: 29, 4: 30, 6: 30, 9: 30, 11: 30} + +# Safety cap on the coarse jumps _walk takes before giving up, so a search that +# never matches raises instead of looping forever. 366 * 8 is well above what +# any satisfiable expression needs, including rare ones like Feb 29. +WALK_ITERATION_BUDGET = 366 * 8 + + +def _parse_field(field: str, low: int, high: int) -> tuple[int, ...]: + """Parse a comma-separated cron field into a sorted tuple of allowed values.""" + if not field: + raise ValueError("empty cron field") + values: set[int] = set() + for chunk in field.split(","): + values.update(_expand_chunk(chunk, low, high)) + if not values: + raise ValueError(f"cron field expanded to empty set: {field!r}") + return tuple(sorted(values)) + + +def _expand_chunk(chunk: str, low: int, high: int) -> range: + """Expand one comma-separated piece (with optional /step) into a numeric range.""" + if not chunk: + raise ValueError("empty value in cron field") + base, step, step_specified = _split_step(chunk) + start, end = _parse_base(base, low, high, step_specified=step_specified) + if start < low or end > high: + raise ValueError(f"value out of range [{low}, {high}] in {chunk!r}") + return range(start, end + 1, step) + + +def _split_step(chunk: str) -> tuple[str, int, bool]: + """Split 'base[/step]' into (base, step, step_specified). step defaults to 1.""" + if "/" not in chunk: + return chunk, 1, False + base, _, step_str = chunk.partition("/") + if not base or not step_str: + raise ValueError(f"malformed step expression: {chunk!r}") + try: + step = int(step_str) + except ValueError as exc: + raise ValueError(f"step must be an integer: {chunk!r}") from exc + if step <= 0: + raise ValueError(f"step must be positive: {chunk!r}") + return base, step, True + + +def _parse_base(base: str, low: int, high: int, *, step_specified: bool) -> tuple[int, int]: + """Parse the value portion of a chunk into an inclusive (start, end) pair.""" + if base == "*": + return low, high + if "-" in base: + return _parse_range(base) + try: + value = int(base) + except ValueError as exc: + raise ValueError(f"value must be an integer: {base!r}") from exc + return (value, high) if step_specified else (value, value) + + +def _parse_range(base: str) -> tuple[int, int]: + """Parse an inclusive 'n-m' range into (n, m).""" + left, _, right = base.partition("-") + if not left or not right: + raise ValueError(f"malformed range: {base!r}") + try: + start, end = int(left), int(right) + except ValueError as exc: + raise ValueError(f"range bounds must be integers: {base!r}") from exc + if start > end: + raise ValueError(f"range start must be <= end: {base!r}") + return start, end + + +class _ParsedCron(NamedTuple): + minutes: tuple[int, ...] + hours: tuple[int, ...] + doms: tuple[int, ...] + dom_restricted: bool + months: tuple[int, ...] + dows: tuple[int, ...] + dow_restricted: bool + expression: str + + +def _parse(expression: str) -> _ParsedCron: + """Parse and validate a 5-field cron string into its allowed value sets.""" + if not isinstance(expression, str): + raise TypeError("cron expression must be a string") + + stripped = expression.strip() + if not stripped: + raise ValueError("cron expression is empty") + if stripped.startswith("@"): + raise ValueError(f"shortcut expressions are not supported: {expression!r}") + + fields = stripped.split() + if len(fields) != 5: + raise ValueError(f"expected 5 cron fields, got {len(fields)}: {expression!r}") + + minute_field, hour_field, dom_field, month_field, dow_field = fields + raw_dows = _parse_field(dow_field, *DOW_RANGE) + + parsed = _ParsedCron( + minutes=_parse_field(minute_field, *MINUTE_RANGE), + hours=_parse_field(hour_field, *HOUR_RANGE), + doms=_parse_field(dom_field, *DOM_RANGE), + dom_restricted=dom_field != "*", + months=_parse_field(month_field, *MONTH_RANGE), + dows=tuple(sorted({0 if v == 7 else v for v in raw_dows})), + dow_restricted=dow_field != "*", + expression=" ".join(fields), + ) + _reject_unsatisfiable_dom_month(parsed) + return parsed + + +def _reject_unsatisfiable_dom_month(parsed: _ParsedCron) -> None: + """Reject a restricted day-of-month that never occurs in the restricted months.""" + if parsed.dow_restricted or not parsed.dom_restricted: + return + for month in parsed.months: + if any(day <= MAX_DAYS_PER_MONTH.get(month, 31) for day in parsed.doms): + return + raise ValueError( + f"cron expression {parsed.expression!r} can never fire: " + f"day-of-month {list(parsed.doms)} does not occur in months {list(parsed.months)}" + ) + + +class CronExpression: + """A parsed standard 5-field cron expression evaluated in UTC. + + Raises ``ValueError`` if the expression is malformed or can never fire, and + ``TypeError`` if it is not a string. + """ + + __slots__ = ( + "_dom_restricted", + "_doms", + "_dow_restricted", + "_dows", + "_expression", + "_hours", + "_minutes", + "_months", + ) + + def __init__(self, expression: str) -> None: + parsed = _parse(expression) + self._minutes = parsed.minutes + self._hours = parsed.hours + self._doms = parsed.doms + self._dom_restricted = parsed.dom_restricted + self._months = parsed.months + self._dows = parsed.dows + self._dow_restricted = parsed.dow_restricted + self._expression = parsed.expression + + def _canonical_key(self) -> tuple: + return ( + self._minutes, + self._hours, + self._doms, + self._months, + self._dows, + self._dom_restricted, + self._dow_restricted, + ) + + def __repr__(self) -> str: + return f"CronExpression({self._expression!r})" + + def __eq__(self, other: object) -> bool: + if not isinstance(other, CronExpression): + return NotImplemented + return self._canonical_key() == other._canonical_key() + + def __hash__(self) -> int: + return hash(self._canonical_key()) + + @property + def expression(self) -> str: + """The normalized cron expression string.""" + return self._expression + + def next_tick(self, after: float) -> float: + """First scheduled tick strictly greater than ``after`` (epoch seconds, UTC).""" + start = datetime.fromtimestamp(after, UTC).replace(second=0, microsecond=0) + timedelta(minutes=1) + return self._walk(start, forward=True) + + def previous_tick(self, before: float) -> float: + """Greatest scheduled tick strictly less than ``before`` (epoch seconds, UTC).""" + ts = datetime.fromtimestamp(before, UTC) + start = ts.replace(second=0, microsecond=0) + if ts.second == 0 and ts.microsecond == 0: + start = start - timedelta(minutes=1) + return self._walk(start, forward=False) + + def _day_matches(self, year: int, month: int, day: int) -> bool: + dom_match = day in self._doms + cron_weekday = (datetime(year, month, day, tzinfo=UTC).weekday() + 1) % 7 + dow_match = cron_weekday in self._dows + + if self._dom_restricted and self._dow_restricted: + return dom_match or dow_match + if self._dom_restricted: + return dom_match + if self._dow_restricted: + return dow_match + return True + + def _walk(self, dt: datetime, *, forward: bool) -> float: + for _ in range(WALK_ITERATION_BUDGET): + if dt.month not in self._months: + dt = self._jump_month(dt, forward) + continue + if not self._day_matches(dt.year, dt.month, dt.day): + dt = self._jump_day(dt, forward) + continue + if dt.hour not in self._hours: + dt = self._jump_hour(dt, forward) + continue + if dt.minute not in self._minutes: + dt = self._jump_minute(dt, forward) + continue + return dt.timestamp() + raise ValueError( + f"cron expression {self._expression!r} has no matching tick within {WALK_ITERATION_BUDGET} steps" + ) + + def _jump_month(self, dt: datetime, forward: bool) -> datetime: + year = dt.year + if forward: + for month in self._months: + if month > dt.month: + return datetime(year, month, 1, 0, 0, tzinfo=UTC) + return datetime(year + 1, self._months[0], 1, 0, 0, tzinfo=UTC) + for month in reversed(self._months): + if month < dt.month: + return datetime(year, month, monthrange(year, month)[1], 23, 59, tzinfo=UTC) + last = self._months[-1] + return datetime(year - 1, last, monthrange(year - 1, last)[1], 23, 59, tzinfo=UTC) + + @staticmethod + def _jump_day(dt: datetime, forward: bool) -> datetime: + if forward: + return (dt + timedelta(days=1)).replace(hour=0, minute=0, second=0, microsecond=0) + return (dt - timedelta(days=1)).replace(hour=23, minute=59, second=0, microsecond=0) + + def _jump_hour(self, dt: datetime, forward: bool) -> datetime: + if forward: + for hour in self._hours: + if hour > dt.hour: + return dt.replace(hour=hour, minute=0, second=0, microsecond=0) + return (dt + timedelta(days=1)).replace(hour=0, minute=0, second=0, microsecond=0) + + last_minute = self._minutes[-1] + for hour in reversed(self._hours): + if hour < dt.hour: + return dt.replace(hour=hour, minute=last_minute, second=0, microsecond=0) + return (dt - timedelta(days=1)).replace(hour=self._hours[-1], minute=last_minute, second=0, microsecond=0) + + def _jump_minute(self, dt: datetime, forward: bool) -> datetime: + if forward: + for minute in self._minutes: + if minute > dt.minute: + return dt.replace(minute=minute, second=0, microsecond=0) + return (dt + timedelta(hours=1)).replace(minute=0, second=0, microsecond=0) + + for minute in reversed(self._minutes): + if minute < dt.minute: + return dt.replace(minute=minute, second=0, microsecond=0) + return (dt - timedelta(hours=1)).replace(minute=self._minutes[-1], second=0, microsecond=0) + + +class CronScheduler: + """State machine that reports which cron ticks have elapsed since the last call. + + ``due_ticks(now)`` is non-blocking: it inspects the cached next tick against + ``now``, returns all elapsed ticks immediately, and advances internal state. + It never sleeps. + + With ``startup_lookback > 0``, the first call also yields the most recent + past tick when it falls within ``now - startup_lookback``. + """ + + __slots__ = ("_expression", "_next_tick_cached", "_startup_lookback") + + def __init__( + self, + expression: str | CronExpression, + *, + startup_lookback: float = 0.0, + ) -> None: + if isinstance(expression, CronExpression): + self._expression = expression + elif isinstance(expression, str): + self._expression = CronExpression(expression) + else: + raise TypeError(f"expression must be str or CronExpression, got {type(expression).__name__}") + if startup_lookback < 0: + raise ValueError("startup_lookback must be non-negative") + self._startup_lookback = float(startup_lookback) + self._next_tick_cached: float | None = None + + @property + def expression(self) -> CronExpression: + """The underlying parsed cron expression.""" + return self._expression + + @property + def next_tick(self) -> float | None: + """Cached upcoming tick, or None before the first ``due_ticks`` call.""" + return self._next_tick_cached + + def due_ticks(self, now: float | None = None) -> list[float]: + """Return scheduled ticks that have come due by ``now``. + + "Due" is the scheduling sense: the tick's scheduled moment is at or + before ``now``. It does not imply the work for that tick ran or + completed. + """ + if now is None: + now = time.time() + + elapsed: list[float] = [] + + if self._next_tick_cached is None: + if self._startup_lookback > 0: + prev = self._expression.previous_tick(before=now) + if now - prev <= self._startup_lookback: + elapsed.append(prev) + self._next_tick_cached = self._expression.next_tick(after=now) + return elapsed + + while now >= self._next_tick_cached: + tick = self._next_tick_cached + self._next_tick_cached = self._expression.next_tick(after=tick) + elapsed.append(tick) + + return elapsed + + +__all__ = ["CronExpression", "CronScheduler"] diff --git a/datadog_checks_base/tests/base/utils/test_cron.py b/datadog_checks_base/tests/base/utils/test_cron.py new file mode 100644 index 0000000000000..06e212dfaaa7b --- /dev/null +++ b/datadog_checks_base/tests/base/utils/test_cron.py @@ -0,0 +1,520 @@ +# (C) Datadog, Inc. 2026-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) +from __future__ import annotations + +import time +from datetime import datetime, timezone + +import pytest + +from datadog_checks.base.utils.cron import CronExpression, CronScheduler + + +def utc_timestamp(year: int, month: int, day: int, hour: int = 0, minute: int = 0) -> float: + return datetime(year, month, day, hour, minute, tzinfo=timezone.utc).timestamp() + + +def iso_format(timestamp: float) -> str: + return datetime.fromtimestamp(timestamp, timezone.utc).isoformat() + + +@pytest.fixture +def daily_at_nine() -> CronScheduler: + return CronScheduler("0 9 * * *") + + +# 2026-01-01 00:00:00 UTC is a Thursday, picked as the anchor for the tables below. +BASE_TIMESTAMP = utc_timestamp(2026, 1, 1) + + +# --------------------------------------------------------------------------- +# Parsing +# --------------------------------------------------------------------------- + + +@pytest.mark.parametrize( + "expression", + [ + "* * * * *", + "0 0 * * *", + "*/5 * * * *", + "0 9 * * *", + "15,45 * * * *", + "0 0 1 1 *", + "0 0 1 */3 *", + "*/5 * * * 0", + "* * * * 7", + "0 0 29 2 *", + "0 0 * * 1-5", + "7-23/4 * * * *", + "0 8-17/2 * * 1", + "0 0 1,15 * *", + "0,15,30,45 * * * *", + " 0 9 * * * ", + ], +) +def test_cron_expression_accepts_valid(expression: str) -> None: + CronExpression(expression) + + +@pytest.mark.parametrize( + "expression", + [ + "", + " ", + "* * * *", + "* * * * * *", + "60 * * * *", + "* 24 * * *", + "* * 0 * *", + "* * 32 * *", + "* * * 0 *", + "* * * 13 *", + "* * * * 8", + "*/0 * * * *", + "5-2 * * * *", + "foo * * * *", + "@daily", + "@hourly", + "@reboot", + "JAN * * * *", + "* * * * MON", + "-1 * * * *", + "1- * * * *", + "-3 * * * *", + "1,,3 * * * *", + "*/-1 * * * *", + "1/2 * * * */0", + "10-5 * * * *", + "0 0 1 1, 2, 3 *", + "0 0 1 1 ,2 ,3 *", + "0 0 1- 3 * *", + "0 0 1 -3 * *", + ], +) +def test_cron_expression_rejects_invalid(expression: str) -> None: + with pytest.raises(ValueError): + CronExpression(expression) + + +@pytest.mark.parametrize("bad", [None, 123, 1.5, object(), [], {}]) +def test_cron_expression_raises_type_error_for_non_string(bad: object) -> None: + with pytest.raises(TypeError): + CronExpression(bad) # type: ignore[arg-type] + + +@pytest.mark.parametrize( + "expression", + [ + "0 0 31 2 *", + "0 0 30 2 *", + "0 0 31 4 *", + "0 0 31 4,6,9,11 *", + ], +) +def test_unsatisfiable_dom_month_combo_rejected_at_parse_time(expression: str) -> None: + with pytest.raises(ValueError): + CronExpression(expression) + + +def test_unsatisfiable_combo_allowed_when_dow_provides_or_match() -> None: + CronExpression("0 0 31 2 1") + + +@pytest.mark.parametrize( + "left_expression,right_expression", + [ + ("0 0 * * 7", "0 0 * * 0"), + ("0 0 * * 0,7", "0 0 * * 0"), + ("0 0 * * 1-7", "0 0 * * 0-6"), + ("5,5,1-6 * * * *", "1-6 * * * *"), + ("* 4,1-4,5 * * *", "* 1-5 * * *"), + ("* * * * 2-3,4-5,3", "* * * * 2-5"), + ("0 0 1 1,1,3,3 *", "0 0 1 1,3 *"), + ], +) +def test_semantically_equivalent_expressions_compare_equal(left_expression: str, right_expression: str) -> None: + left = CronExpression(left_expression) + right = CronExpression(right_expression) + assert left == right + assert hash(left) == hash(right) + + +# --------------------------------------------------------------------------- +# Tick math, table-driven. Each row pins both bracketing ticks at the same +# anchor so adding a case forces the (prev, next) pair to stay self-consistent +# (prev < anchor <= next). +# --------------------------------------------------------------------------- + + +@pytest.mark.parametrize( + "expression,anchor,expected_next,expected_prev", + [ + pytest.param( + "* * * * *", + BASE_TIMESTAMP, + utc_timestamp(2026, 1, 1, 0, 1), + utc_timestamp(2025, 12, 31, 23, 59), + id="every-minute", + ), + pytest.param( + "0 * * * *", BASE_TIMESTAMP, utc_timestamp(2026, 1, 1, 1), utc_timestamp(2025, 12, 31, 23), id="hourly" + ), + pytest.param( + "0 9 * * *", BASE_TIMESTAMP, utc_timestamp(2026, 1, 1, 9), utc_timestamp(2025, 12, 31, 9), id="daily-at-9" + ), + pytest.param( + "0 9 * * *", + utc_timestamp(2026, 1, 1, 9), + utc_timestamp(2026, 1, 2, 9), + utc_timestamp(2025, 12, 31, 9), + id="on-9-boundary", + ), + pytest.param( + "0 9 * * *", + utc_timestamp(2026, 1, 1, 9, 1), + utc_timestamp(2026, 1, 2, 9), + utc_timestamp(2026, 1, 1, 9), + id="one-min-after-9", + ), + pytest.param( + "*/5 * * * *", + utc_timestamp(2026, 1, 1, 0, 3), + utc_timestamp(2026, 1, 1, 0, 5), + utc_timestamp(2026, 1, 1, 0, 0), + id="every-5-mid", + ), + pytest.param( + "0 9 * * 1", + BASE_TIMESTAMP, + utc_timestamp(2026, 1, 5, 9), + utc_timestamp(2025, 12, 29, 9), + id="weekly-monday-9", + ), + pytest.param( + "0 0 1 1 *", + BASE_TIMESTAMP, + utc_timestamp(2027, 1, 1), + utc_timestamp(2025, 1, 1), + id="new-year-from-new-year", + ), + pytest.param( + "0 0 29 2 *", + utc_timestamp(2026, 3, 1), + utc_timestamp(2028, 2, 29), + utc_timestamp(2024, 2, 29), + id="leap-day", + ), + pytest.param( + "0 0 1 * *", + utc_timestamp(2026, 1, 1, 12), + utc_timestamp(2026, 2, 1), + utc_timestamp(2026, 1, 1), + id="monthly-first", + ), + pytest.param( + "7-23/4 * * * *", + BASE_TIMESTAMP, + utc_timestamp(2026, 1, 1, 0, 7), + utc_timestamp(2025, 12, 31, 23, 23), + id="range-step-minutes", + ), + pytest.param( + "0 0 1 */3 *", + BASE_TIMESTAMP, + utc_timestamp(2026, 4, 1), + utc_timestamp(2025, 10, 1), + id="quarterly-first", + ), + pytest.param( + "0 0 1 * 1", + BASE_TIMESTAMP, + utc_timestamp(2026, 1, 5), + utc_timestamp(2025, 12, 29), + id="vixie-or-dom1-or-mon", + ), + pytest.param( + "0 0 * * 0", BASE_TIMESTAMP, utc_timestamp(2026, 1, 4), utc_timestamp(2025, 12, 28), id="sunday-as-0" + ), + pytest.param( + "0 0 * * 7", BASE_TIMESTAMP, utc_timestamp(2026, 1, 4), utc_timestamp(2025, 12, 28), id="sunday-as-7" + ), + pytest.param( + "0 0 31 * *", + utc_timestamp(2026, 3, 1), + utc_timestamp(2026, 3, 31), + utc_timestamp(2026, 1, 31), + id="31st-skips-feb", + ), + pytest.param( + "15,45 * * * *", + BASE_TIMESTAMP, + utc_timestamp(2026, 1, 1, 0, 15), + utc_timestamp(2025, 12, 31, 23, 45), + id="list-15-and-45", + ), + pytest.param( + "* * * * *", + utc_timestamp(2026, 1, 1) + 0.5, + utc_timestamp(2026, 1, 1, 0, 1), + utc_timestamp(2026, 1, 1, 0, 0), + id="every-minute-fractional", + ), + pytest.param( + "5/15 * * * *", + BASE_TIMESTAMP, + utc_timestamp(2026, 1, 1, 0, 5), + utc_timestamp(2025, 12, 31, 23, 50), + id="n-step-extends-to-high", + ), + pytest.param( + "1/2 * * * *", + BASE_TIMESTAMP, + utc_timestamp(2026, 1, 1, 0, 1), + utc_timestamp(2025, 12, 31, 23, 59), + id="odd-minutes-via-n-step", + ), + pytest.param( + "0 0 31 1 3", + utc_timestamp(2026, 2, 15), + utc_timestamp(2027, 1, 6), + utc_timestamp(2026, 1, 31), + id="vixie-or-with-month-boundary-cross", + ), + pytest.param( + "0 16 */2 * 6", + utc_timestamp(2023, 5, 2), + utc_timestamp(2023, 5, 3, 16), + utc_timestamp(2023, 5, 1, 16), + id="vixie-or-stepped-dom-with-saturday", + ), + pytest.param( + "5 0 */2 * *", + utc_timestamp(2012, 2, 24), + utc_timestamp(2012, 2, 25, 0, 5), + utc_timestamp(2012, 2, 23, 0, 5), + id="stepped-dom-previous-from-even-day", + ), + pytest.param( + "0 0 22 * *", + utc_timestamp(2012, 3, 15), + utc_timestamp(2012, 3, 22), + utc_timestamp(2012, 2, 22), + id="dom-prev-crosses-into-previous-month", + ), + pytest.param( + "0 0 * * 0,6", + utc_timestamp(2010, 8, 25, 15, 56), + utc_timestamp(2010, 8, 28), + utc_timestamp(2010, 8, 22), + id="weekend-dow-list-both-directions", + ), + pytest.param( + "0 0 1 1,3,6,9,12 *", + utc_timestamp(2026, 1, 15), + utc_timestamp(2026, 3, 1), + utc_timestamp(2026, 1, 1), + id="quarterly-via-month-comma-list", + ), + ], +) +def test_bracketing_ticks(expression: str, anchor: float, expected_next: float, expected_prev: float) -> None: + expr = CronExpression(expression) + got_next = expr.next_tick(after=anchor) + got_prev = expr.previous_tick(before=anchor) + + failures: list[str] = [] + if got_next != expected_next: + failures.append( + f"next_tick from {iso_format(anchor)}: got {iso_format(got_next)}, expected {iso_format(expected_next)}" + ) + if got_prev != expected_prev: + failures.append( + f"previous_tick before {iso_format(anchor)}: " + f"got {iso_format(got_prev)}, expected {iso_format(expected_prev)}" + ) + assert not failures, f"{expression}:\n" + "\n".join(failures) + + +@pytest.mark.parametrize( + "expression,count", + [ + ("* * * * *", 60), + ("*/5 * * * *", 12), + ("0 9 * * *", 7), + ("0 0 * * 1", 4), + ("0 0 1 * *", 13), + ], +) +def test_next_tick_is_strictly_monotone(expression: str, count: int) -> None: + expr = CronExpression(expression) + t = BASE_TIMESTAMP + ticks = [] + for _ in range(count): + t = expr.next_tick(after=t) + ticks.append(t) + assert ticks == sorted(set(ticks)) + + +@pytest.mark.parametrize( + "expression,anchor", + [ + ("0 9 * * *", utc_timestamp(2026, 1, 1, 9, 0)), + ("* * * * *", utc_timestamp(2026, 1, 1, 0, 0)), + ("0 0 1 1 *", utc_timestamp(2026, 1, 1, 0, 0)), + ], +) +def test_next_and_previous_are_strict_on_tick_boundary(expression: str, anchor: float) -> None: + expr = CronExpression(expression) + assert expr.next_tick(after=anchor) > anchor + assert expr.previous_tick(before=anchor) < anchor + + +def test_cron_expression_equality_and_repr() -> None: + a = CronExpression("0 9 * * *") + b = CronExpression(" 0 9 * * * ") + c = CronExpression("0 10 * * *") + assert a == b + assert hash(a) == hash(b) + assert a != c + assert a != "0 9 * * *" + assert repr(a) == "CronExpression('0 9 * * *')" + assert a.expression == "0 9 * * *" + + +# --------------------------------------------------------------------------- +# CronScheduler +# --------------------------------------------------------------------------- + + +def test_scheduler_constructor_accepts_string_and_expression() -> None: + from_str = CronScheduler("0 9 * * *") + from_expr = CronScheduler(CronExpression("0 9 * * *")) + assert from_str.expression == from_expr.expression + + +@pytest.mark.parametrize("bad", [None, 42, 3.14, object()]) +def test_scheduler_rejects_bad_expression_type(bad: object) -> None: + with pytest.raises(TypeError): + CronScheduler(bad) # type: ignore[arg-type] + + +def test_scheduler_rejects_negative_lookback() -> None: + with pytest.raises(ValueError): + CronScheduler("* * * * *", startup_lookback=-1.0) + + +def test_scheduler_next_tick_none_before_first_call(daily_at_nine: CronScheduler) -> None: + assert daily_at_nine.next_tick is None + + +def test_scheduler_fresh_no_ticks_due(daily_at_nine: CronScheduler) -> None: + out = daily_at_nine.due_ticks(now=utc_timestamp(2026, 1, 1, 8, 30)) + assert out == [] + assert daily_at_nine.next_tick == utc_timestamp(2026, 1, 1, 9) + + +def test_scheduler_fires_after_tick_crossed(daily_at_nine: CronScheduler) -> None: + daily_at_nine.due_ticks(now=utc_timestamp(2026, 1, 1, 8, 30)) + out = daily_at_nine.due_ticks(now=utc_timestamp(2026, 1, 1, 9, 0)) + assert out == [utc_timestamp(2026, 1, 1, 9)] + assert daily_at_nine.next_tick == utc_timestamp(2026, 1, 2, 9) + + +def test_scheduler_idempotent_within_same_polling_window(daily_at_nine: CronScheduler) -> None: + daily_at_nine.due_ticks(now=utc_timestamp(2026, 1, 1, 8, 55)) + poll = utc_timestamp(2026, 1, 1, 9, 1) + first = daily_at_nine.due_ticks(now=poll) + second = daily_at_nine.due_ticks(now=poll) + assert first == [utc_timestamp(2026, 1, 1, 9)] + assert second == [] + + +def test_scheduler_does_not_fire_past_tick_without_startup_lookback() -> None: + s = CronScheduler("0 9 * * *") + out = s.due_ticks(now=utc_timestamp(2026, 1, 1, 9, 30)) + assert out == [] + assert s.next_tick == utc_timestamp(2026, 1, 2, 9) + + +def test_scheduler_does_not_block(daily_at_nine: CronScheduler, monkeypatch: pytest.MonkeyPatch) -> None: + sleep_calls: list[float] = [] + monkeypatch.setattr(time, "sleep", lambda secs: sleep_calls.append(secs)) + for _ in range(20): + daily_at_nine.due_ticks(now=utc_timestamp(2026, 1, 1, 8, 30)) + assert sleep_calls == [] + + +def test_scheduler_yields_multiple_missed_ticks(daily_at_nine: CronScheduler) -> None: + daily_at_nine.due_ticks(now=utc_timestamp(2026, 1, 1, 8, 30)) + out = daily_at_nine.due_ticks(now=utc_timestamp(2026, 1, 4, 12, 0)) + assert out == [ + utc_timestamp(2026, 1, 1, 9), + utc_timestamp(2026, 1, 2, 9), + utc_timestamp(2026, 1, 3, 9), + utc_timestamp(2026, 1, 4, 9), + ] + assert daily_at_nine.next_tick == utc_timestamp(2026, 1, 5, 9) + + +def test_scheduler_advances_state_when_lookback_window_misses() -> None: + s = CronScheduler("0 * * * *", startup_lookback=300) + out = s.due_ticks(now=utc_timestamp(2026, 1, 1, 12, 30)) + assert out == [] + assert s.next_tick == utc_timestamp(2026, 1, 1, 13) + + +@pytest.mark.parametrize( + "expression,lookback,now,expected", + [ + pytest.param("0 * * * *", 0.0, utc_timestamp(2026, 1, 1, 12, 0), [], id="no-lookback"), + pytest.param( + "0 * * * *", + 7200, + utc_timestamp(2026, 1, 1, 12, 3), + [utc_timestamp(2026, 1, 1, 12, 0)], + id="generous-window-catches-prev", + ), + pytest.param("0 * * * *", 300, utc_timestamp(2026, 1, 1, 12, 30), [], id="narrow-window-misses"), + pytest.param( + "*/10 * * * *", + 600, + utc_timestamp(2026, 1, 1, 12, 3), + [utc_timestamp(2026, 1, 1, 12, 0)], + id="recent-tick-inside-window", + ), + pytest.param( + "0 9 * * *", + 3600, + utc_timestamp(2026, 1, 1, 9, 30), + [utc_timestamp(2026, 1, 1, 9)], + id="daily-startup-30min-after", + ), + ], +) +def test_scheduler_startup_lookback(expression: str, lookback: float, now: float, expected: list[float]) -> None: + s = CronScheduler(expression, startup_lookback=lookback) + assert s.due_ticks(now=now) == expected + + +def test_scheduler_default_now_uses_wall_clock(monkeypatch: pytest.MonkeyPatch) -> None: + fixed = utc_timestamp(2026, 1, 1, 8, 30) + monkeypatch.setattr(time, "time", lambda: fixed) + s = CronScheduler("0 9 * * *") + assert s.due_ticks() == [] + assert s.next_tick == utc_timestamp(2026, 1, 1, 9) + + +def test_scheduler_due_ticks_returns_list(daily_at_nine: CronScheduler) -> None: + result = daily_at_nine.due_ticks(now=utc_timestamp(2026, 1, 1, 8, 30)) + assert isinstance(result, list) + + +def test_scheduler_advances_correctly_across_ten_ticks() -> None: + s = CronScheduler("0 * * * *") + s.due_ticks(now=utc_timestamp(2026, 1, 1, 0, 30)) + collected: list[float] = [] + for hour in range(1, 11): + collected.extend(s.due_ticks(now=utc_timestamp(2026, 1, 1, hour, 0))) + assert collected == [utc_timestamp(2026, 1, 1, hour) for hour in range(1, 11)] From 8abadadf3313dac49b2597955e79a3e3fa636438 Mon Sep 17 00:00:00 2001 From: Juanpe Araque Date: Fri, 29 May 2026 14:38:01 +0100 Subject: [PATCH 3/6] Aarakke/release checks base (#23877) * [Release] Bumped datadog_checks_base version to 37.38.0 * [Release] Update metadata --- .in-toto/tag.4e75cfa1.link | 2 +- datadog_checks_base/CHANGELOG.md | 11 +++++++++++ datadog_checks_base/changelog.d/22750.added | 1 - datadog_checks_base/changelog.d/23741.added | 1 - datadog_checks_base/changelog.d/23767.security | 1 - datadog_checks_base/datadog_checks/base/__about__.py | 2 +- requirements-agent-release.txt | 2 +- 7 files changed, 14 insertions(+), 6 deletions(-) delete mode 100644 datadog_checks_base/changelog.d/22750.added delete mode 100644 datadog_checks_base/changelog.d/23741.added delete mode 100644 datadog_checks_base/changelog.d/23767.security diff --git a/.in-toto/tag.4e75cfa1.link b/.in-toto/tag.4e75cfa1.link index d56ddf95d8a63..a50f48402edd4 100644 --- a/.in-toto/tag.4e75cfa1.link +++ b/.in-toto/tag.4e75cfa1.link @@ -1 +1 @@ -{"signatures":[{"keyid":"4e75cfa1b0b5240a7448b136975c1e0adf56b392","other_headers":"04000108001d1621044e75cfa1b0b5240a7448b136975c1e0adf56b392050269f205ee","signature":"51d03bc27d4c380ca9f1972276466f3b19b193cec6e6c1d472c0aa72890282620cfdf4c28d1285ca8707f642508adde51c8355dcbe895b6af284f335368cb0e5841938b64734f44e729231ff0b3fc39b6d1c3b9efffa1114df4bc67aa88d1c1ce18179b89f62f9cc89f17d07594ee46402ab291af6f95ef28926bf0e317da5c6e91b0be9380efbf35378f9c8c0d538f1bec7051e60435fd324478c08da4b92f59d531a482334627090668f0d374693856bfc52b89309b909ae6226dc1d77c1e22ab4b28f9a4f1b0057daa4e7cd9096bf3aad877a887e149dedcc0a6efbf0ee557802f3714cb63e15380f57a23b2d6e3e9b5287c3d5cca52813385e2c04f8daf90f29be69b640d7510b6bdc6b0c6cecf44c93754f5aac487e91f74ce98c2b9eb45b0c2ac7e9323648d611cf22b7cde8a72ba631881076e3e7f19d65c28cccbb7f68579de04a458ea05760abb921f9222d924995cf97368404d1ea0f0ccab47d940cd07462ddca1e5ab8159e09324cca2260f59369fa9405dfbb8b3a2416320ae879e2bdc0b24d5e81490090ad9867de50819b9e0e596af3f9f7e95a2b2b6cd7c598ed86be2b439bdf7612f364d8638bbf53db4c0ee6b44e6c3dd46e1b7815068b3b44bb7daa083db27dafc776e5ec21869f2cffd577c2b49277a96d8083031ffc5a071aea18a6e020d0c38c5facb4ac1e6b1043004e56bd24032e886ee2c718de"}],"signed":{"_type":"link","byproducts":{},"command":[],"environment":{},"materials":{},"name":"tag","products":{"datadog_checks_dev/datadog_checks/dev/__about__.py":{"sha256":"336be1af182ac95f3bbbb0b02794b6f2e6375605fcd01f4633f39f8c53d1e2fd"},"datadog_checks_dev/datadog_checks/dev/__init__.py":{"sha256":"a719d056d27f47df5fcd37b6f4d584d1e6a7cbccef33ae01da2520b19c7dd722"},"datadog_checks_dev/datadog_checks/dev/__main__.py":{"sha256":"0b1c4bcaa055bf74aabb2b821b4b1c26b0833439ab59d91193feb086d1627ac2"},"datadog_checks_dev/datadog_checks/dev/_env.py":{"sha256":"278a8a9d9890480717189a046f00ca9b95bb5972436ebc6ba42150d617463c8d"},"datadog_checks_dev/datadog_checks/dev/ci.py":{"sha256":"b875146a73600103434a19c0407eca3280c3714f5b773316e2ba27c305ad7544"},"datadog_checks_dev/datadog_checks/dev/conditions.py":{"sha256":"3c2c720cc4a43e88ac59730eb045247b3c698e7038ae5719bad7da654322f4b0"},"datadog_checks_dev/datadog_checks/dev/docker.py":{"sha256":"602ac0e121e90bd6dba9f9ef73975066d465d75839a4d755ed7a5e5dbdf15173"},"datadog_checks_dev/datadog_checks/dev/env.py":{"sha256":"8d90808a53ac87a0db9bad4c4babfd003ad116a84af507262f57ccfb7b694053"},"datadog_checks_dev/datadog_checks/dev/errors.py":{"sha256":"b048cb0dab6b7cab91e38ae0de73b8e167a62c03b940a7e679040b5a3eff8605"},"datadog_checks_dev/datadog_checks/dev/fs.py":{"sha256":"71ed6ff92c80eb4c18aa81a5172d258e80c459c51aaa7e14fefa920d81bb7302"},"datadog_checks_dev/datadog_checks/dev/http.py":{"sha256":"7c7191d5d772f02a808f7c873da62d61bd47ca0efe292f9a757061ee6df6945e"},"datadog_checks_dev/datadog_checks/dev/jmx.py":{"sha256":"0c9fe850e36987cfc91711f37e26ca9e094880855293f26c58ae368d375976a4"},"datadog_checks_dev/datadog_checks/dev/kind.py":{"sha256":"354765f1ebaa5408bf7680c31ab54560e0a903ca2557c259cdabd6727a9690f2"},"datadog_checks_dev/datadog_checks/dev/kube_port_forward.py":{"sha256":"39690a158ba1f82521e54a438a1502090a1a6d74539e21dbbab2bf6c2c02877f"},"datadog_checks_dev/datadog_checks/dev/plugin/__init__.py":{"sha256":"4c2d2aee209b36a7188df5396b304da429e2f0b01060e7d8e8500313749910f0"},"datadog_checks_dev/datadog_checks/dev/plugin/pytest.py":{"sha256":"abb1fe0de13e5e717edde0b03575c06a83142889df9a921c57cb0c635308a0ac"},"datadog_checks_dev/datadog_checks/dev/spec.py":{"sha256":"c537870562c275ac07b2cc9b88b53fc18b9343e3ef79cec2b5ba2348a81b9486"},"datadog_checks_dev/datadog_checks/dev/ssh_tunnel.py":{"sha256":"131c88d649ac11f70e81be3b047f56e816284bd5a2210ac14fb830db53baaa6c"},"datadog_checks_dev/datadog_checks/dev/structures.py":{"sha256":"0c660cab8cb5528ed495e9c213fca923648e6d22620f21fd94bfd89ce3f31004"},"datadog_checks_dev/datadog_checks/dev/subprocess.py":{"sha256":"82204a306c5761d875230d0ace2e2eb5786976c7acec077676c766f2834d7c90"},"datadog_checks_dev/datadog_checks/dev/terraform.py":{"sha256":"49e80a404fb068f3fb9447c93735ed75238b134300136201a298cafd940b6c64"},"datadog_checks_dev/datadog_checks/dev/testing.py":{"sha256":"93ebb2a4fbab79d8e22044815019c639353eac0095846234a2716dc38d8c5ab1"},"datadog_checks_dev/datadog_checks/dev/tooling/__init__.py":{"sha256":"4c2d2aee209b36a7188df5396b304da429e2f0b01060e7d8e8500313749910f0"},"datadog_checks_dev/datadog_checks/dev/tooling/__main__.py":{"sha256":"60b67815a138da81e4984c304402f61c4ed7282374e9e8cdfe8fca21200f57af"},"datadog_checks_dev/datadog_checks/dev/tooling/catalog_const.py":{"sha256":"8f4ab9ed03cd34a5d2948ad0fe72eb153917a658b5c37e0064b7d58b2722711d"},"datadog_checks_dev/datadog_checks/dev/tooling/cli.py":{"sha256":"34733f537c730971f407ec769872cca753be342ed0263be4b1dfcc1aa81834fd"},"datadog_checks_dev/datadog_checks/dev/tooling/codeowners.py":{"sha256":"4395fc4b7cf59c749a85d567e53537c35283b2fb698a432ddfce0396bc3a4b09"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/__init__.py":{"sha256":"0d91e56962315c933c1c12e31905c73235e75cf7847150fde4dce12e3d9314bf"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/ci/__init__.py":{"sha256":"191a8d4d6140548f010dab64e178201c27cdce9ad85a5f76c1a1baba9151130c"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/ci/setup.py":{"sha256":"8904dbe4af0c5c9412395edcbc8f142e9d9fdef3effce461098b653574a8f2f3"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/console.py":{"sha256":"d814e114f19f176b0e657b9bdee5a12f4fc7b21a4f5db07b01eb6df99541ad72"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/create.py":{"sha256":"a2c7b1339097a7d50ce23b082ea91f89365d80763d415a77a5c450a25f4c837b"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/__init__.py":{"sha256":"7f89a95c9b5565479c9ecce8e2bc99edea02448afaaa73b216448025c9459078"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/catalog.py":{"sha256":"e4d0603eaab4fa5b2f8129ee91e4a09dcb5a882687dbde22d9f0baf08da0bba5"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/changes.py":{"sha256":"c6c3aeb0cb8399a65cdd5f978409cb2dc9f098a9013a36cb0f8f520cae8cfa80"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/create_commits.py":{"sha256":"a55accd20ba64cb4e26c4688e73303c334debd5f12dbe44f724f5c8ac4591cb4"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/dashboard.py":{"sha256":"74e885639e6b81e80725c342d04222d973046959924f8dbc02b43df52fc68fc7"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/jmx.py":{"sha256":"d69583441c46d56c3c19e94ec5e73d27534bd15c064c16b7f8a77ed7750f17a0"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/manifest.py":{"sha256":"d9abfa182f6478afe71484e0da2407faea92354e16e0cbf4c920da0c85f0e979"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/prometheus.py":{"sha256":"b62250011bcfb4dae0407dad0fc35b9ff80583f530253c9cba246b26e21ae043"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/scripts/__init__.py":{"sha256":"c28c912cf99522f2fefd97444a9ab5117881e76db6a0d095afafcae0b8c182bc"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/scripts/github_user.py":{"sha256":"7adea7ebeb468208b67a1e8ecf8e3e668d016f1f79f8b94f867207d9ce6cd341"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/scripts/metrics2md.py":{"sha256":"3db16fc01f80155a9b062c8c257e361248aa40aaedc3cd6529f903ab5dbf7355"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/scripts/remove_labels.py":{"sha256":"b6621525a80d92ae8a7c6591e132b8f380cd949d669ed6a590a18a29ee3f6afb"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/__init__.py":{"sha256":"b05b300236e8c7852bd02fae245ce8c905e4d7bcb2b0d6543366b030f460d97d"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/constants.py":{"sha256":"91bc112010f6f9fd4e040e89421a2b97fb07060fc402b21bbac3a3d00fce38ae"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/generate_profile.py":{"sha256":"14c973e8c6ef1bd45b2f0ad5aa865ae8fe460f001565d368e9bc0bc6e58e518c"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/generate_traps_db.py":{"sha256":"76f9ecf9ab9c56e6350987c6c9b12e6bac46c79611c607a8318e8d9307156330"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/translate_profile.py":{"sha256":"25263b7f6a380dcafcef8698ff2ee165be73db58ebddae7939073e30494856f8"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/validate_mib_filenames.py":{"sha256":"742a3d4234383cea64b06df81e5756d63d6dee9794caa772ac22f9d7997ccc60"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/validate_snmp_profiles.py":{"sha256":"9fec522d2193a9817ad0a7f35ea46a0550f328459f9c737b34167a1055dda207"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/validators/__init__.py":{"sha256":"083f2ce9f2d3e8104a83c7c94be9ab6562cb5c9294581b913992d5441e07b82a"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/validators/profile_schema.json":{"sha256":"2bfde4d49c86e8c1906e2182f3a0be827f4f90b6cf42a156fe30c0c102735ae0"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/validators/utils.py":{"sha256":"e4929fc5b445720f247a776aed7d91e777e7f7dc32b261e964b5937b9723f309"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/snmp/validators/validator.py":{"sha256":"79d1835178c5c4d5b3f66cdda4d4e2870751f2514a55734b09c9c5e485941554"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/windows/__init__.py":{"sha256":"42adde34af2d619ba62aa4a20b345a413f66f6799b9cffa595a1d35ee77f84ec"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/meta/windows/pdh.py":{"sha256":"d325da21596e3c7a0707eec734c923a1f5a762166fa25a93f6e4967072d83c31"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/__init__.py":{"sha256":"2f6c05d3a9dfea59350a775201a1f57de5f71c6cc5bcfd412a523481c15f29b9"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/build.py":{"sha256":"e827e1b7c7543c8d0ce7d1f6053940db1a7a7597fdddd68278406ca0fb391e46"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/changelog.py":{"sha256":"c178c26a3a678569142cc63ca040002bc3265e0bba431ce42874a3d41a164d3e"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/make.py":{"sha256":"5af205b2d732b6e859cf9068cfe05534dad04cd8815573b48f44707335ce17d6"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/show/__init__.py":{"sha256":"76701cad3b42c9ad904ab8f92caeb26818cad3599818e45eb672e6147d6c6a1f"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/show/changes.py":{"sha256":"913df3a4a0b8ed8ffe2e94fc2257214afcb834398ae3f0aeb2f65734c90d3014"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/show/ready.py":{"sha256":"9bbd87f1619ea299adebdaf2e5b103dec183df21192e714245a4d8e65fb85817"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/stats/__init__.py":{"sha256":"5b5187c36eb3953d3ef79a67ef28677078139b5f2849496f091176f682578a78"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/stats/common.py":{"sha256":"14f2e48bdd2e28725bc9fe7e1f6698b089e27a48843e9c8576c966e46d682816"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/stats/stats.py":{"sha256":"0d592d29a62bb8015d25169160fcacb13eded76f17440443c0bf15f06c3283ec"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/tag.py":{"sha256":"b94978f3efa42aec58af4d1a7695115ad507a5f5ef45dfeabb9ca2584faa87fc"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/release/upload.py":{"sha256":"9f007284bb93d6045379b3b9b4499e43a5add5c61fb25980ebacbe6506256536"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/run.py":{"sha256":"eb83338d3dd81e1ee203ee7bd0a8ddcbc38959aea0d9d7ca3b9887ae306721fe"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/__init__.py":{"sha256":"2ac2550d50d8fc6af32e4ad78ce43291e55ece18d0dfc423023181c5beebc2f8"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/agent_reqs.py":{"sha256":"26b2e418cedb375ec7faab92b5bab195960be34c50e35716aa9079909fa3a75d"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/agent_signature.py":{"sha256":"9c2c47ef5ea86a3365456f962effb86b0e3c92230f70cf0810687ad2ae2664cf"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/codeowners.py":{"sha256":"8d9d52c1dc3435605679f188826145410916e5af9690508a882d2a26bae99a24"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/config.py":{"sha256":"ebac5d709b4773d95b19e3fc22e5fe51696017eb084367698017f0a176093a28"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/dashboards.py":{"sha256":"e62fc52d3826b58eef76185f1022c86e0a0aa4ca5171cda368e774f1c6ebf3fb"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/dep.py":{"sha256":"83efa4ae810e2dd7d5f3a1303680e165b855087e17b8188dbb6354755b97822c"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/eula.py":{"sha256":"72deaa49112bc555d65fd821158b6c799d9a7802c6febbdb755fac9d0255c891"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/imports.py":{"sha256":"be00a90da9019803a12d778fc4d4365531af61a225b7f815c95584f1acba4df0"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/integration_style.py":{"sha256":"55e6099e1f3fda4613d4026159405dd409fecec7ea301bd4dfa062aa9742e5e8"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/jmx_metrics.py":{"sha256":"4f825a9fd4b3f7acbd2ea952b792dba15930b046379e1146a07521912146d85f"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/license_headers.py":{"sha256":"25c6475022110ce366e22965e65f0449c4e19a1516d7d843bdb489a71b0f1c5f"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/models.py":{"sha256":"59b29f8cc1306331572776a15cb0358888cb2b28e255c600483c1e52d3e2c7c4"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/package.py":{"sha256":"1fe66713d8d57afd22a7aa66a7a62a6a74097d8b25f7c5137839a03232d29cab"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/readmes.py":{"sha256":"759c7dcd7afd3a607c9a08a091582139cf0accfa686dd4e66f8074015e7eb0a2"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/saved_views.py":{"sha256":"7f4f4d562b84c8fa0fa960857057b3ad4c8437c560320621e5678ccf1051ec42"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/service_checks.py":{"sha256":"845e37d9a93ac6fc0e75feefe0fc16d8975b4f57031c696be8b3dfe2b8f235e0"},"datadog_checks_dev/datadog_checks/dev/tooling/commands/validate/typos.py":{"sha256":"680b9ca420713092fa759f7feee86bdce166282765273bfd8c154c0ba43a7ed2"},"datadog_checks_dev/datadog_checks/dev/tooling/config.py":{"sha256":"a394899ffeaabaa7b85af4a6454d7f28a6ab7edee37c99fcbfb17fadfca9a622"},"datadog_checks_dev/datadog_checks/dev/tooling/config_validator/__init__.py":{"sha256":"a37696bf2dcf872903fe1ed84f7b3adbc3b45b66291e2b3436542c495d4f234e"},"datadog_checks_dev/datadog_checks/dev/tooling/config_validator/config_block.py":{"sha256":"4eb448f403bee6396bc17bce6053897ef5a69bdcdff6ccfefeeb9519c5c8a14d"},"datadog_checks_dev/datadog_checks/dev/tooling/config_validator/utils.py":{"sha256":"2e88a21bcf38d3357aa68ab3a3bf688eddc796960be25c3b7952bde36fbb0697"},"datadog_checks_dev/datadog_checks/dev/tooling/config_validator/validator.py":{"sha256":"f2749d57ab97175ecf9626864e3414e361ab2332802d742f60d97c26a9828a7a"},"datadog_checks_dev/datadog_checks/dev/tooling/config_validator/validator_errors.py":{"sha256":"e3920ed0847a7537d45fddb5398e657c1742cee9c27cfaf453add2fc795a63fd"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/__init__.py":{"sha256":"7f40321b073a61d5d03139ebf0167051f11838ca7b6242332dabcbbb9bbe325e"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/constants.py":{"sha256":"1f5282d08c8508029b80414b220073f01da0bc7802eddec39bd290b2f11d8217"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/consumers/__init__.py":{"sha256":"3fad58a28211e9fb13fcab3d29843e726d800c1c2202b87295eb423cfd206046"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/consumers/example.py":{"sha256":"5dd51758afa96383e1fe7124b4c5e116cc0d0c3c09668d8fbb17d385afda9d6f"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/consumers/model/__init__.py":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/consumers/model/model_consumer.py":{"sha256":"af3adf329489175f6ab6f22710c60b4f2a0dd650250b3653ed032bb63d250696"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/consumers/model/model_file.py":{"sha256":"385bec48f2f9d73ad35af0c9350f3b55fb86c5001dce041e5b3b2afc9e30b960"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/consumers/model/model_info.py":{"sha256":"632fd82d04b9cb21549cb19bf5def391f23f47c4092cfa6c6217394f3bf3b99b"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/consumers/openapi_document.py":{"sha256":"d68e91e84e07d79331cb59ef54700be30c6f6459ed4c040bda20958bd7ad071c"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/core.py":{"sha256":"2580c9a8d48a6bbf00f2413ad65e689fbdc772f9a94ad1ab33ef7960d08d8da6"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/spec.py":{"sha256":"c67e5bf212eb180f524e0f60ef52f8ef4d091243a0f276bfd42ad0eb76d174ab"},"datadog_checks_dev/datadog_checks/dev/tooling/configuration/template.py":{"sha256":"0d7602d34e40a4e2eb56601a1817d52976c2b09d7c66ade3f5b352cdf05a4d71"},"datadog_checks_dev/datadog_checks/dev/tooling/constants.py":{"sha256":"f409ff3688093f22e07b80065c08746fd518e8937c1a3910e712ead465eb1f4f"},"datadog_checks_dev/datadog_checks/dev/tooling/create.py":{"sha256":"1660c305e54b9263350478facbc91a4274b3f835aa93945c136d9d05b8695a89"},"datadog_checks_dev/datadog_checks/dev/tooling/datastructures.py":{"sha256":"58411715d64348e60f964fb58a55481e58a0859a33a75de5eaa86b64ade0bf58"},"datadog_checks_dev/datadog_checks/dev/tooling/dependencies.py":{"sha256":"5a6803f2c6455f4b585accf3c756bd75b3ba1ef806739d5f1d2ad34d03d4bf4d"},"datadog_checks_dev/datadog_checks/dev/tooling/e2e/__init__.py":{"sha256":"041770d4abd7a492615e0a23c062ffd3748f7f26678f2abc42450caf6ba7cd0a"},"datadog_checks_dev/datadog_checks/dev/tooling/e2e/agent.py":{"sha256":"7039c9dc9f04beb95bde3a244a6747fa5a5ce310495f776def606a021e38b017"},"datadog_checks_dev/datadog_checks/dev/tooling/e2e/config.py":{"sha256":"a6e4743f5d114464af0d1561085540d2e05b9eb6b2a4669b88e4a859cc7872c4"},"datadog_checks_dev/datadog_checks/dev/tooling/e2e/core.py":{"sha256":"1f810b8a4b0e9f6b6fb7811a2ee575a499cc2cba2563901d80ff2fdb50c47d81"},"datadog_checks_dev/datadog_checks/dev/tooling/e2e/docker.py":{"sha256":"27b605c3b2c99337cff4ad4b8bff848ea881afee91758383a32094079a83151c"},"datadog_checks_dev/datadog_checks/dev/tooling/e2e/format.py":{"sha256":"49bb2b401ee27d448ad1c49dc3c2a161291db670ba9bc9411d3f06ee7902984d"},"datadog_checks_dev/datadog_checks/dev/tooling/e2e/local.py":{"sha256":"d2e1cc5e5426ab1ddf115ea6c47be3c2ae4c0599008d90e9bf1a39606c824d6f"},"datadog_checks_dev/datadog_checks/dev/tooling/e2e/platform.py":{"sha256":"dfb3a670a0cc6e64c496f7cd6905650347d80b869630ad7aedab0a4dbbfc5f11"},"datadog_checks_dev/datadog_checks/dev/tooling/e2e/run.py":{"sha256":"d93c773077a0e4cf2e2bb7d6e8fc0823a138cb3432bd3c00ab00fda45f0757a1"},"datadog_checks_dev/datadog_checks/dev/tooling/git.py":{"sha256":"5b5c77f8f358ac3d6bdcb9ef65005cfe2952d09d6904d2bf181f91e41db5011e"},"datadog_checks_dev/datadog_checks/dev/tooling/github.py":{"sha256":"ebcc9462dc23caab6d30b951b69ec827242de50cf0b75b4ffd97f19753444422"},"datadog_checks_dev/datadog_checks/dev/tooling/license_headers.py":{"sha256":"b107558babaacc353386f2f336c6a7fc66768fc348c828efc0c2538f296fcafd"},"datadog_checks_dev/datadog_checks/dev/tooling/manifest_utils.py":{"sha256":"7644e6d75a17e923f846bfe09222d579afde3661e3186312120563a8a462738b"},"datadog_checks_dev/datadog_checks/dev/tooling/manifest_validator/__init__.py":{"sha256":"afb09b643841291ec16223b06f073404a4b1ecf9d1432719f319a75153528b53"},"datadog_checks_dev/datadog_checks/dev/tooling/manifest_validator/common/__init__.py":{"sha256":"72811b8621e09b2c2584eef89feee2146cd5cb8e0e775c80c1af031152ebeba4"},"datadog_checks_dev/datadog_checks/dev/tooling/manifest_validator/common/validator.py":{"sha256":"37c56e2d10c87ad9ea62036fd481f20d67bba5862cbbad119695b8e04916e334"},"datadog_checks_dev/datadog_checks/dev/tooling/manifest_validator/constants.py":{"sha256":"8ddfd4b9bf11df5930e9a8eb343d48cc8e92be019c2baf613ce4dec3860ad9cf"},"datadog_checks_dev/datadog_checks/dev/tooling/manifest_validator/v2/__init__.py":{"sha256":"72811b8621e09b2c2584eef89feee2146cd5cb8e0e775c80c1af031152ebeba4"},"datadog_checks_dev/datadog_checks/dev/tooling/manifest_validator/v2/migration.py":{"sha256":"90ff485584a3b04d804b5beaedff2667efa4d7241d69dd0ab8271b73c63f81ad"},"datadog_checks_dev/datadog_checks/dev/tooling/manifest_validator/v2/validator.py":{"sha256":"5b1dada311ee2d481ed72a54e285d7d5fdc367e96ecf5404bf772525dacf93d9"},"datadog_checks_dev/datadog_checks/dev/tooling/release.py":{"sha256":"81cba6eb1a64e7cddaede9f6f56a6999f0cb858aadfaa6c23fb2784f3f61b28a"},"datadog_checks_dev/datadog_checks/dev/tooling/signing.py":{"sha256":"8230f1d7013511186d50d3495b38290cf640460140f9d97bff256cf0ff6c4aaa"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/ad_identifiers.yaml":{"sha256":"debad2c0564fceaa7bc21481ce43ba4d1309a769ac8fb67e65c707a6b9e49f42"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/common/perf_counters.yaml":{"sha256":"4c8186f3f6134c1b45d995f82c29d32aeed920566993aeeaa81ad64a11e67605"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config.yaml":{"sha256":"0b03d07105545af963c8e1d332236612961de12ebc473a917dbfc29d8ec3198b"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config/db.yaml":{"sha256":"37e79fb5eba332f1aea4b1a0eae04bd42a3da2edb646736b7cb0ac3431d6cbe3"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config/default.yaml":{"sha256":"d1d899a235b713e1dc277e4e149f03b9caaf3a657c2900776d02f1a5ca54b5c6"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config/http.yaml":{"sha256":"87152570d5a6456b3b025deac9f693d2d01c0fc35ccab003b49a222c1d97346a"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config/jmx.yaml":{"sha256":"78a723c90ca50ead410e3e5672bebb6ebadfe799b08b3e641c68c750f0850f9c"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config/openmetrics.yaml":{"sha256":"5bd455963b3ba5b4e8b1cd835630d06c91231aaa5c88bbba0870c35917ce6df4"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config/openmetrics_legacy.yaml":{"sha256":"5bd455963b3ba5b4e8b1cd835630d06c91231aaa5c88bbba0870c35917ce6df4"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config/openmetrics_legacy_base":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config/perf_counters.yaml":{"sha256":"384155d8f8dd735d331118a056b11c84285c37ce9dc16fa11d5b30c8b2080164"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config/service.yaml":{"sha256":"b7764fa6ce77f14c6c208b99a4d969934c6944c12d1aff81b327b37fc486d1b7"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/init_config/tags.yaml":{"sha256":"7515b0271d1227de3b20e8bd998529179557532ab119a0c408f4ebf968f38790"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances.yaml":{"sha256":"bab548f2d4f06a84e38c03e5ba71df6b5b4727a9c6fd9b10744d62b1324a3ea9"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/all_integrations.yaml":{"sha256":"de9afd1055fb7e6402e226f9ab1bf51fb3a78d3deeb7eb2dd6e17af4dc3bc78e"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/db.yaml":{"sha256":"ee56e12d535d8d0a572499860990be5c4b41b718e17044ea11a43b1186e85d52"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/default.yaml":{"sha256":"5eb6119cbf2920cf4615b4953db2500938d726aa67a10d935d5a5139ca6d0a0e"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/global.yaml":{"sha256":"86833c16caf506b8d5ddfa2e8eb689d0031db976fee71108ab7522d1d38020be"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/http.yaml":{"sha256":"2a8ae6541a6964af305257e1a3eb2959f7b1b60b2529edaf6b728a7c27745cab"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/jmx.yaml":{"sha256":"086ee786558dd44b9d777fce6f6538800b4a3e2788d49ab1e1f227fd3c22dbe7"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/openmetrics.yaml":{"sha256":"882a63e6abb7fd5c4fcd152f4dba23a8efc10fa5fdd98c9fb4dd1e73a81298a9"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/openmetrics_legacy.yaml":{"sha256":"f0cc0ba9b5eac9450b9a3f5c96c480dc096badf94aab0bfbbbede5cf5c6f9229"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/openmetrics_legacy_base.yaml":{"sha256":"a6cd6354b7326a6f6b9f171ca43f408b1f3647dcf413d40658c095d5711e180d"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/pdh_legacy.yaml":{"sha256":"37778879794b5cc592eee9a381ca17dfa48a4ba2aec595649fe406648d1a68fa"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/perf_counters.yaml":{"sha256":"9d7d73f121a23a29d7b7d3ff0322951350cf447cab6f469aac249cbb3dc1a7d4"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/service.yaml":{"sha256":"09b55994efc6367dd56c7a6e222e5ec16d8818aca2f063831ad813340965ca66"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/tags.yaml":{"sha256":"3da2b097d01504df33ddc721e0c041a3a929193741c742e5bfc58e85703c42be"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/instances/tls.yaml":{"sha256":"9b9128b58eac4f96d9eab5e6037639a73861206e3991235a7e8cfc5615e7c0cc"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/configuration/logs.yaml":{"sha256":"1182fc46b7d01535900e3b7373eb99b5d51d899fc6a5b827ee81db8c8e54bb8d"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/README.md":{"sha256":"05ae39533fd5b3774d9b63d34d96e5bed68d40a66f3868ee17ccde977916c640"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/CHANGELOG.md":{"sha256":"cd08a7bcb971c3046e8cf9217f98c19c86e38032c558d8b8ec786c9536f9e9c4"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/README.md":{"sha256":"981d74dd2b21b95dd207b2caae08d1dcc79d4cd8bfa0438e4c10f0ad17aeda63"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/assets/configuration/spec.yaml":{"sha256":"2ace40aafc7e0b9f6440d50101b8cecc32ba00d0bc9820e99a2e8632be05170d"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/assets/dashboards/{check_name}_overview.json":{"sha256":"7d5a3f4ecb4ed7c6d6efd236fb0bd94f31b0772472d9db02d4a063e759138222"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/changelog.d/1.added":{"sha256":"38c1fb60f69cf5b525500782b5ac0eaf0b4b8f0fcf4fa6f8cde96d83c316e07c"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/datadog_checks/{check_name}/__about__.py":{"sha256":"49c83d52895bf69c2ffbf1a32d3c3491961018693f68413bf494c63bbbd59c17"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/datadog_checks/{check_name}/__init__.py":{"sha256":"7afb749ce0829e4abed181098d56b8da0a07fbe5444ee8ed7037c04f04feca23"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/datadog_checks/{check_name}/check.py":{"sha256":"56740f050c32fdfecee90a8585384f8e09e5f879e73eabf52209568b050dcf69"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/datadog_checks/{check_name}/config_models/__init__.py":{"sha256":"a380172194927e06060e6560bde84d4316decc8a7acb39fa4b909cf952e06852"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/datadog_checks/{check_name}/config_models/defaults.py":{"sha256":"1d810b48a6f54c44c229424c2c9936d23c3fa75759e32193e5aa7ac915ade136"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/datadog_checks/{check_name}/config_models/instance.py":{"sha256":"13bd3f64d4e9f48771cc84fd9b9ece5d9f2eff5353b34900587381e81d1ab435"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/datadog_checks/{check_name}/config_models/shared.py":{"sha256":"5c43d21e0178045706b3de56810b5be58a45ea3b65bedfc3beed3800819bb278"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/datadog_checks/{check_name}/config_models/validators.py":{"sha256":"ff8691fdd4c4bc21e4feeab75b714040176265ffe25c6e056c521aec5c0299b5"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/datadog_checks/{check_name}/data/conf.yaml.example":{"sha256":"5e0de7f83fac0dba09f081681c16e127fb4be027f08eac6166a102268d26efad"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/hatch.toml":{"sha256":"19bfd6bc12acca0c93b7c134c2b31faf44dff8fe515e3aa3ea0f228da07dcc9b"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/images/.gitkeep":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/manifest.json":{"sha256":"ea8c4a3a3ad8c4e694f1d5fcd16c4967ac76a46b9f417ff44ca3e35733ed6753"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/metadata.csv":{"sha256":"6ee51511155f603e08403c3df5713cf44d2437dbb27ec063dcf7bec61509694b"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/pyproject.toml":{"sha256":"acf48eee6fa1303285e26782cd75a58432a87de8dd73adc995959c5dac25cfd5"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/tests/__init__.py":{"sha256":"d8dc47fd44c6ab1577c4fc677c41d029c4c6a9aac573ce844297b3fce71bb091"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/tests/conftest.py":{"sha256":"288ab38141b5fc11c7cbcce1d5850b5c85a461969a73a181bd9057a1b2919cf4"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check/{check_name}/tests/test_unit.py":{"sha256":"d83dccec6a699f4d928e3897910d660c449b7c2a3dc3aa92a899c4a2894a93dd"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check_only/{check_name}/CHANGELOG.md":{"sha256":"9b62870d871f1034fdaa04d43fefb612262dd11544f8ae03f595f276c98eaaf8"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check_only/{check_name}/README.md":{"sha256":"c3bfe979d381f3e6215593dbb0dff39bfd8539a85fb922bdeb70eb7469e00a16"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check_only/{check_name}/assets/configuration/spec.yaml":{"sha256":"2ace40aafc7e0b9f6440d50101b8cecc32ba00d0bc9820e99a2e8632be05170d"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check_only/{check_name}/changelog.d/1.added":{"sha256":"38c1fb60f69cf5b525500782b5ac0eaf0b4b8f0fcf4fa6f8cde96d83c316e07c"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check_only/{check_name}/datadog_checks/{check_name}/__about__.py":{"sha256":"49c83d52895bf69c2ffbf1a32d3c3491961018693f68413bf494c63bbbd59c17"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check_only/{check_name}/datadog_checks/{check_name}/__init__.py":{"sha256":"7afb749ce0829e4abed181098d56b8da0a07fbe5444ee8ed7037c04f04feca23"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check_only/{check_name}/datadog_checks/{check_name}/check.py":{"sha256":"56740f050c32fdfecee90a8585384f8e09e5f879e73eabf52209568b050dcf69"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check_only/{check_name}/datadog_checks/{check_name}/config_models/__init__.py":{"sha256":"a380172194927e06060e6560bde84d4316decc8a7acb39fa4b909cf952e06852"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check_only/{check_name}/datadog_checks/{check_name}/config_models/defaults.py":{"sha256":"1d810b48a6f54c44c229424c2c9936d23c3fa75759e32193e5aa7ac915ade136"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check_only/{check_name}/datadog_checks/{check_name}/config_models/instance.py":{"sha256":"13bd3f64d4e9f48771cc84fd9b9ece5d9f2eff5353b34900587381e81d1ab435"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check_only/{check_name}/datadog_checks/{check_name}/config_models/shared.py":{"sha256":"5c43d21e0178045706b3de56810b5be58a45ea3b65bedfc3beed3800819bb278"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check_only/{check_name}/datadog_checks/{check_name}/config_models/validators.py":{"sha256":"ff8691fdd4c4bc21e4feeab75b714040176265ffe25c6e056c521aec5c0299b5"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check_only/{check_name}/datadog_checks/{check_name}/data/conf.yaml.example":{"sha256":"1c57a5f19076030f8fbd6a57bf7b1073f61e70a261614bb8ca984a50c85f0383"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check_only/{check_name}/hatch.toml":{"sha256":"19bfd6bc12acca0c93b7c134c2b31faf44dff8fe515e3aa3ea0f228da07dcc9b"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check_only/{check_name}/pyproject.toml":{"sha256":"c3c8c27c4144bfc92675f0de36b4e6b828b4e29819c1d4aa0ce02296afc8ff75"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check_only/{check_name}/tests/__init__.py":{"sha256":"d8dc47fd44c6ab1577c4fc677c41d029c4c6a9aac573ce844297b3fce71bb091"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check_only/{check_name}/tests/conftest.py":{"sha256":"288ab38141b5fc11c7cbcce1d5850b5c85a461969a73a181bd9057a1b2919cf4"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/check_only/{check_name}/tests/test_unit.py":{"sha256":"d83dccec6a699f4d928e3897910d660c449b7c2a3dc3aa92a899c4a2894a93dd"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/event/README.md":{"sha256":"4c41e122586f1400907ff23f0c1a87307d3eeaef37fbab50b0d205d6545dc151"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/event/{check_name}/CHANGELOG.md":{"sha256":"a94d80ae88154fdce2f874cf02f2f1523ec9765020708c52c21c6182fc132f18"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/event/{check_name}/README.md":{"sha256":"ca656f1fbd4ec604e8d231d98b9411b4c05e397fb7db063a8add667c6f54ee8e"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/event/{check_name}/manifest.json":{"sha256":"f303603f8a58ebd74ccdf96bd77e740804a3abbc101d049d6e89e01bad9cd5bd"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/CHANGELOG.md":{"sha256":"cd08a7bcb971c3046e8cf9217f98c19c86e38032c558d8b8ec786c9536f9e9c4"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/README.md":{"sha256":"3de07e6f81c5c538a4d7e40034404c0298e2e47d3a4d245ec443284540a6e473"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/assets/configuration/spec.yaml":{"sha256":"a7dd7aaa3a27ef53f689ea9e7bd135c97c7071896897a3fac925aec0866c7121"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/assets/dashboards/{check_name}_overview.json":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/changelog.d/1.added":{"sha256":"38c1fb60f69cf5b525500782b5ac0eaf0b4b8f0fcf4fa6f8cde96d83c316e07c"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/datadog_checks/{check_name}/__about__.py":{"sha256":"49c83d52895bf69c2ffbf1a32d3c3491961018693f68413bf494c63bbbd59c17"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/datadog_checks/{check_name}/__init__.py":{"sha256":"4a4f6dea91ffd477a50b09301f706382044f366efe4b3c41e86b039da7842e0a"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/datadog_checks/{check_name}/config_models/__init__.py":{"sha256":"c1e9bb781f20c5dfb6bdafdce5f13c46832e31a23f9fb0ccfec4a2ed83b97d04"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/datadog_checks/{check_name}/config_models/defaults.py":{"sha256":"f6146ad90daf2db6ddeeb856f52b03796a08dd2decf152bd1e89afaab82bd389"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/datadog_checks/{check_name}/config_models/instance.py":{"sha256":"279c7fc0f14b15f06a416338fc333f51ded1c10619d62dcda9c54c4747dc2e6a"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/datadog_checks/{check_name}/config_models/shared.py":{"sha256":"308f28e01943d2c15ddc9b9000695681b4664cc7d504c727b8a19c9d70165ea1"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/datadog_checks/{check_name}/config_models/validators.py":{"sha256":"d8dc47fd44c6ab1577c4fc677c41d029c4c6a9aac573ce844297b3fce71bb091"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/datadog_checks/{check_name}/data/conf.yaml.example":{"sha256":"479c850a145914012425917c62e26c75a4f5f95b99ef6ec0671183a9f821dc32"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/datadog_checks/{check_name}/data/metrics.yaml":{"sha256":"529823f85918da2a317d966266cef9fca8c26ed81134ee1bd5b338f649723e83"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/hatch.toml":{"sha256":"19bfd6bc12acca0c93b7c134c2b31faf44dff8fe515e3aa3ea0f228da07dcc9b"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/images/.gitkeep":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/manifest.json":{"sha256":"1196b2d0be8554e236c478f532b9ac38d1dbdbbc7bce1907dbe478e32d6ba678"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/metadata.csv":{"sha256":"6ee51511155f603e08403c3df5713cf44d2437dbb27ec063dcf7bec61509694b"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/pyproject.toml":{"sha256":"acf48eee6fa1303285e26782cd75a58432a87de8dd73adc995959c5dac25cfd5"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/tests/__init__.py":{"sha256":"d8dc47fd44c6ab1577c4fc677c41d029c4c6a9aac573ce844297b3fce71bb091"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/tests/common.py":{"sha256":"7a9fddcbc85c2d0db1d40e126f4b6b632dab83dfd1e771de303d58b9c7468491"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/tests/conftest.py":{"sha256":"3d692efee3524ac1de5a7d116877b84f749674b5e95f0a5eff66d56d1687f860"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/tests/metrics.py":{"sha256":"aa3800824032efd81a9ec139accffbdb326d26389d7b9617251b6738169274fd"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/jmx/{check_name}/tests/test_e2e.py":{"sha256":"d52bb59384d89abfbd670e1c92149acbd1a6c21f9ce2209905c115ae253a7b00"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/README.md":{"sha256":"b6c3d311af66922a1c2313c5f3dbbcdf46fbbe18ec7eacc56f9d13c9528f4d06"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/CHANGELOG.md":{"sha256":"cd08a7bcb971c3046e8cf9217f98c19c86e38032c558d8b8ec786c9536f9e9c4"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/README.md":{"sha256":"56d552c92e5b3ed2a75a406cf2c42e437752727170cfbf7c96f1b3c516bac374"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/assets/configuration/spec.yaml":{"sha256":"e678062aba11f1b6a03e2e56a99277e6112c2e06f3dbce0a097cf5cf6b0abc59"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/assets/dashboards/{check_name}_overview.json":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/changelog.d/1.added":{"sha256":"38c1fb60f69cf5b525500782b5ac0eaf0b4b8f0fcf4fa6f8cde96d83c316e07c"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/datadog_checks/{check_name}/__about__.py":{"sha256":"49c83d52895bf69c2ffbf1a32d3c3491961018693f68413bf494c63bbbd59c17"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/datadog_checks/{check_name}/__init__.py":{"sha256":"4a4f6dea91ffd477a50b09301f706382044f366efe4b3c41e86b039da7842e0a"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/datadog_checks/{check_name}/data/conf.yaml.example":{"sha256":"4b30c4dc85fd460595889ebc1de22469b97b0ec0b43906d0d750e7af3cdd2aa3"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/images/.gitkeep":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/manifest.json":{"sha256":"75bf33e0ac7a59290993c6b7b0e8a064c8d28eb7f13a2f166659f34106a188ad"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/metadata.csv":{"sha256":"6ee51511155f603e08403c3df5713cf44d2437dbb27ec063dcf7bec61509694b"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/logs/{check_name}/pyproject.toml":{"sha256":"e5531ec4aea0b6aab72d4c32d74c83babc2194f75b8a529f462b193999241a39"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/marketplace/IMAGES_README.md":{"sha256":"4eec6290559b12169131832997ddbd496cfe536708fde9b3ccd96879a7f298a1"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/marketplace/README.md":{"sha256":"d1afa7ae5595dd1c1ddf58528318ee82d06cca8a8e8b3c17ca236c2114f28c11"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/metrics_crawler/README.md":{"sha256":"06339a7e7c52457284412c4c280cf48c75f79afa83dbb2bb82756e7ae3561ca9"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/metrics_crawler/{check_name}/CHANGELOG.md":{"sha256":"a94d80ae88154fdce2f874cf02f2f1523ec9765020708c52c21c6182fc132f18"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/metrics_crawler/{check_name}/README.md":{"sha256":"1e922e762f6da011fac7590ef27d9b7f2f02c502f1c2ae3e01a937122e8127f8"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/metrics_crawler/{check_name}/assets/dashboards/{check_name}_overview.json":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/metrics_crawler/{check_name}/assets/service_checks.json":{"sha256":"37517e5f3dc66819f61f5a7bb8ace1921282415f10551d2defa5c3eb0985b570"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/metrics_crawler/{check_name}/images/.gitkeep":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/metrics_crawler/{check_name}/manifest.json":{"sha256":"0bc9b3a1e3cf2c92f7a3f4478da2a1ab719be26ff48f35c09b3ee27e28aba987"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/metrics_crawler/{check_name}/metadata.csv":{"sha256":"6ee51511155f603e08403c3df5713cf44d2437dbb27ec063dcf7bec61509694b"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/snmp_tile/snmp_{check_name}/CHANGELOG.md":{"sha256":"a94d80ae88154fdce2f874cf02f2f1523ec9765020708c52c21c6182fc132f18"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/snmp_tile/snmp_{check_name}/README.md":{"sha256":"c3340a4b54400ff440c3b7cec14812f14382694e1ff25474e3364c67e8393b1a"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/snmp_tile/snmp_{check_name}/assets/service_checks.json":{"sha256":"37517e5f3dc66819f61f5a7bb8ace1921282415f10551d2defa5c3eb0985b570"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/snmp_tile/snmp_{check_name}/manifest.json":{"sha256":"9854a853bc050080597cf21059d8027c84849872d89bad091e7e33f7734ce064"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/tile/README.md":{"sha256":"b87b3a5b2eea807d8d4ea36fc8248b103a88e9e9457b31f23f26c5abe2ffb368"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/tile/{check_name}/CHANGELOG.md":{"sha256":"697b0270a62fc28c87e92cb9b0cda9b4ce448e919b3ea26d12d8331204e05f1b"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/tile/{check_name}/README.md":{"sha256":"2ffdb31b75b9d603b7b96edc81c8147cd9af8ca3bcccee60aac2b88ca616466d"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/tile/{check_name}/assets/dashboards/{check_name}_overview.json":{"sha256":"9c4f16ce9f369b6da6ce978b08d136e07e35827713259a6dcabea74408844d7d"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/tile/{check_name}/assets/service_checks.json":{"sha256":"37517e5f3dc66819f61f5a7bb8ace1921282415f10551d2defa5c3eb0985b570"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/tile/{check_name}/images/.gitkeep":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/tile/{check_name}/manifest.json":{"sha256":"beb03fd2d4d54dbe04f2d31cfcaa88e3e4c348ccd51534c115212d8b53e1e17c"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/integration/tile/{check_name}/metadata.csv":{"sha256":"6ee51511155f603e08403c3df5713cf44d2437dbb27ec063dcf7bec61509694b"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/terraform/gke_config.tf":{"sha256":"29e482b800d5a8dad7bc0fc3f42212e2467ceecdf8601d6aca3d6ad30b9c541c"},"datadog_checks_dev/datadog_checks/dev/tooling/templates/terraform/providers.tf":{"sha256":"b99c6d5e4e07431b992580cd437044dd3cb3371b33766cd24497a7cbf16f032f"},"datadog_checks_dev/datadog_checks/dev/tooling/testing.py":{"sha256":"f15bf4da237bb9ff5bdb4c6f2094e8f7e7427b2414cee38a2ba88a4c460060a9"},"datadog_checks_dev/datadog_checks/dev/tooling/utils.py":{"sha256":"4d3ee3f17d404cd414c81db1f4774f2ad6cfc3e0941c2fce056bb3c01bf5e8cd"},"datadog_checks_dev/datadog_checks/dev/utils.py":{"sha256":"da947aa04c55eee3f563c0ff8cea38bc8af696dc8ee6311b69e3071c6ea0faa2"},"datadog_checks_dev/datadog_checks/dev/warn.py":{"sha256":"6445be66a38a2fa46d36dd72b42ad40f7f730353815b33e7a48f0566da7c61fd"},"datadog_checks_dev/pyproject.toml":{"sha256":"612462bd893228a0cb42e56e363503ac7335e78e9c7ba152f256fd1e9d8a836d"}}}} \ No newline at end of file +{"signatures":[{"keyid":"4e75cfa1b0b5240a7448b136975c1e0adf56b392","other_headers":"04000108001d1621044e75cfa1b0b5240a7448b136975c1e0adf56b39205026a19955b","signature":"0e6f11b3ae4a4185969948e6b5f9ca3ad5c63cbb1df67f590b709672be4945969e1e20c70283142ee65844632c198bede3655e612c55d7955e42da56e1dccb7d4aa0478bfc8baec905108f3f962c55de15d4c21e0d0d9aac80ce87c6c7a158a9da6a20a15ef3075107c7462c6784485380b7a4cc83b80cf4bbb3de3618a5986cb97eb9745d04efbacb16b3b5f2dd5ac632293e4e4effd9b3ded449ba30dfae4737f39fbb5aa7a5e5be5938ecf992c2746b06ed0ed2e1106454ee463d13fc56eeb8f29c2deb3706bb47c3bf25bcf073b9a32441c7b7089c5860da9c59f5d1817176a046bb40b94f7ab1661aaad25b7470651f80ba09da3458de6b35e349e83be984f3dea2210231b1d18774cfc7f4ddda4f18473930b04c2f7ba90e4eabd20aae1cda68151169d815f879f4c08a037167c90b6f485c80c0b674daac8ea5284ed2f2b4476102633fad9c45eb8189e0df5ed27ca5c92c4eea15cbdb4aa86886e2c4994591e70558c59b9a3d23a4fd53c9c07b9c44b214d2c5623533e48c53f356ec37b2a99302f11f8299942fca9eecb685dee70c5d504a1683963c9a96fc7944e164459a606ae3db219512bc610ce663e22a9569559c1627972d6649645339fad1cbb77d20ba75d3226c16bf44ccc97430756128210e628ba4451030b6d574305e7dfd2afc363a7280b982ccccb8d7cf00f80b00787dd7208a8ad773654c9924bd"}],"signed":{"_type":"link","byproducts":{},"command":[],"environment":{},"materials":{},"name":"tag","products":{"datadog_checks_base/datadog_checks/__init__.py":{"sha256":"9a3c64b8b00c94da4b4f34618d803d3255808caf21b8afa9195c84b61da66b6a"},"datadog_checks_base/datadog_checks/base/__about__.py":{"sha256":"53ef54b2d2928c1859542ef20055afc45c7c681e025a9e41d91daf7d14936e57"},"datadog_checks_base/datadog_checks/base/__init__.py":{"sha256":"c967a048b13e4d9588192bc08898fd3d2ad4c7394ea3f51524bb76cce459f049"},"datadog_checks_base/datadog_checks/base/__init__.pyi":{"sha256":"6b863524870f27ca73f6d464040be359db6f490c19c5b31906e4662224acff81"},"datadog_checks_base/datadog_checks/base/agent.py":{"sha256":"9d7f71fc16188b344a18d61f5eae73ed2d0567dc5c5ffc1ddadbb1a467b7ffc9"},"datadog_checks_base/datadog_checks/base/checks/__init__.py":{"sha256":"abb57abfe1704169100b5416695cca68f8d931ac4f24725c2ddef50b4b8cedb0"},"datadog_checks_base/datadog_checks/base/checks/__init__.pyi":{"sha256":"c9d7ad97a904142482869a58421b3c9af20fe65eaf9d90f901b2c004685b15c3"},"datadog_checks_base/datadog_checks/base/checks/_config_ast.py":{"sha256":"bf5ac087039117cd1bde47d92a17facd767b4b90f703640f50ae2d4a8f1ea3e6"},"datadog_checks_base/datadog_checks/base/checks/base.py":{"sha256":"83997b4537c377246e8ea3f5945a539d521d0fceb90bf3c2886fa052f79774af"},"datadog_checks_base/datadog_checks/base/checks/db.py":{"sha256":"f41784c2e0c9e530d796aeb2257615b3d4ff5256c26b76d6ad23aae59b210ca7"},"datadog_checks_base/datadog_checks/base/checks/kube_leader/__init__.py":{"sha256":"abb57abfe1704169100b5416695cca68f8d931ac4f24725c2ddef50b4b8cedb0"},"datadog_checks_base/datadog_checks/base/checks/kube_leader/__init__.pyi":{"sha256":"5060f2c28470982233dd98a2d6e1eca7b8e2146591767e5f14c659c60186950b"},"datadog_checks_base/datadog_checks/base/checks/kube_leader/base_check.py":{"sha256":"c7cc1a3febf3b49ccaf5ee8a40b1922c57eb59dcf029cb161b308bd5bb3a5917"},"datadog_checks_base/datadog_checks/base/checks/kube_leader/mixins.py":{"sha256":"bc95058738b055dbd572dd16bc228593aa0cdc76239d336dc31092205bcec87f"},"datadog_checks_base/datadog_checks/base/checks/kube_leader/record.py":{"sha256":"6aa334545b055aeda90343b976cfbabf959038cee58103321b0a26e90eaa09a5"},"datadog_checks_base/datadog_checks/base/checks/kubelet_base/__init__.py":{"sha256":"d70624d464bcea37efdfefd4cb8cdb26fb8e0183eecbdcb8f450f4288455950c"},"datadog_checks_base/datadog_checks/base/checks/kubelet_base/__init__.pyi":{"sha256":"0bec4967ccee71b1bbc80c2db3b27e4819de7ac1be4cf80bd5b06b166e0bf2f7"},"datadog_checks_base/datadog_checks/base/checks/kubelet_base/base.py":{"sha256":"e48a29c2d9a9d08408864075565dcc83957937db2c794627f4344623365aa87d"},"datadog_checks_base/datadog_checks/base/checks/libs/__init__.py":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_base/datadog_checks/base/checks/libs/prometheus.py":{"sha256":"08f897cd26aa17193cd7c36d4c02d1251199ea7a789eeb0a42c7d4bb7212b7dd"},"datadog_checks_base/datadog_checks/base/checks/libs/thread_pool.py":{"sha256":"981219dc63fe452f96075e0fc914bee141179735463179e4bfc93e2c20b8bab7"},"datadog_checks_base/datadog_checks/base/checks/libs/timer.py":{"sha256":"8ac17c602136ed7a5e7a1bb39389782190afc505574dd6cd8a46c1db146780c4"},"datadog_checks_base/datadog_checks/base/checks/libs/vmware/__init__.py":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_base/datadog_checks/base/checks/libs/vmware/all_metrics.py":{"sha256":"4f89b8c40a8abc0f57b6abbea2227be3cd8a0a000e34a134b48800fc4a0842c6"},"datadog_checks_base/datadog_checks/base/checks/libs/vmware/basic_metrics.py":{"sha256":"37d804c9398bb121d2f89162729347394ab2b3b627ad1affb8f608eb34ab35bb"},"datadog_checks_base/datadog_checks/base/checks/logs/__init__.py":{"sha256":"ee840b22269e35c03869d3b7223c20ab5c65895ae23153a8d273c0f866d5b99d"},"datadog_checks_base/datadog_checks/base/checks/logs/crawler/__init__.py":{"sha256":"ee840b22269e35c03869d3b7223c20ab5c65895ae23153a8d273c0f866d5b99d"},"datadog_checks_base/datadog_checks/base/checks/logs/crawler/base.py":{"sha256":"90ae36a4dc349b0d0fc1ac102f3c21b1d0100b55688ce5e0149e3844da37ac8c"},"datadog_checks_base/datadog_checks/base/checks/logs/crawler/stream.py":{"sha256":"300a7c23ecc48f972f4e9ee9349345977d800ddcea359c4682425fc9dadf847e"},"datadog_checks_base/datadog_checks/base/checks/network.py":{"sha256":"52482a9151daa17ec7aa2d16284c7e4ef685885ebedfb57217d0379b66926893"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/__init__.py":{"sha256":"abb57abfe1704169100b5416695cca68f8d931ac4f24725c2ddef50b4b8cedb0"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/__init__.pyi":{"sha256":"02a7053f92c628a67b7d6aa0019007d1f3e9e242c993d36ff4a938e1a736341b"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/base_check.py":{"sha256":"3aa169bf618c48249bd9bd398c66033f52fc9dfcd0e6899d5cbe052fe901ff29"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/mixins.py":{"sha256":"7f08b2b8eea4572ebd387f72b3d71279cf1a44450e1a00758dc056db6cabdf96"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/__init__.py":{"sha256":"6ea1f103b4b1bf22734b22dd35f21238fb492b2175df66c793376b31a29b8e80"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/__init__.pyi":{"sha256":"51083214665a57dea13e0b170dd110f9e2448fd53247c3248abf35515cbcf1ff"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/base.py":{"sha256":"5e2ecadbc7158a8f4834c8f8fedeb49d1c8de8aaf9a8a63fc4a7c7946d1a1efb"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/first_scrape_handler.py":{"sha256":"227fad65733389e49d2f6397265200162efc29b415c2e26718fd2268b1fdf7be"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/labels.py":{"sha256":"43a6d0f977dc2b80c415cca7bc27b4125ebc1fd7768304e2008821e10647271c"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/metrics.py":{"sha256":"b835593871d158c5bc614419058f6308bcde70de43b9e44d8c89b1066d4af369"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/metrics_mapping.py":{"sha256":"05c003dfc33b0087e4f597c9e91f61644df48243d05c19b6b3a618baf6354c3f"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/scraper/__init__.py":{"sha256":"0a63dd8ad50422e51ada17ec6a0d1bf40a17ff0fce4791b061a035931578ddeb"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/scraper/base_scraper.py":{"sha256":"8a330951814a55047690bbceb989ae4daffb5197acd84726e0625933186ae4af"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/scraper/decorators.py":{"sha256":"48e07ee163474457e9a595d76eb4e6fd44be20a0c5f09edef1dd143fadd70067"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transform.py":{"sha256":"a76ecd16a1e54d63022323f7d99aabd517997534e04e7c1e0f805047c6d3e245"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/__init__.py":{"sha256":"6ea1f103b4b1bf22734b22dd35f21238fb492b2175df66c793376b31a29b8e80"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/__init__.pyi":{"sha256":"a3291b1a669b53f2e4a7fb0a0e04ada9079294a69ca061611e3aa82cecbff9a0"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/counter.py":{"sha256":"9a6362e041ad2cd605c566b4c88ff7f0d63d681222e35e0cf6945268635b71a2"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/counter_gauge.py":{"sha256":"a1bd42bc2747afe56b73905295a4f73972f917633a07b3866a15007a4545dc5c"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/gauge.py":{"sha256":"ff6a19d789bfe7f6fb94e47eb4cc49461b1e17aafa7fd0ec3bee0b6c023288f1"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/histogram.py":{"sha256":"c1919379903fdc4f3ee45f5a16ab3c40230958df7de19fb324cbe44d67a7744f"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/metadata.py":{"sha256":"069b093750fd272f78bb12deee4a472f5e042dd961530c939a5e51f3d3003aea"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/rate.py":{"sha256":"7beb75edc142b002a77d7810add521f79c3496c972de2b80d36322cc63ffa1c3"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/service_check.py":{"sha256":"5ba8d9034fe20f75ed7475813967677bd87ab646832932b2e4f0a290b06c4288"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/summary.py":{"sha256":"d01d5693b79ae07da77ddb0e5fca10122a2804636aca914372304f2a31d5b52e"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/temporal_percent.py":{"sha256":"1425d5f6ed5d726168e733be650057049f138141c715b87835e034f21ff6d546"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/time_elapsed.py":{"sha256":"b6a786ad1734ee7d80cf8393981d65ecd2d46415d8d6c04fe5077c7a97d19cda"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/utils.py":{"sha256":"b6993786d240cff2b0091a85b360938da8c790b0acff64db19d069e75e2b58e4"},"datadog_checks_base/datadog_checks/base/checks/prometheus/__init__.py":{"sha256":"abb57abfe1704169100b5416695cca68f8d931ac4f24725c2ddef50b4b8cedb0"},"datadog_checks_base/datadog_checks/base/checks/prometheus/__init__.pyi":{"sha256":"80b7bd92dbd31e79364c9b5920543999175093776ce7ece11f5ee1f062905688"},"datadog_checks_base/datadog_checks/base/checks/prometheus/base_check.py":{"sha256":"d8edeb15002579b295bd35df47ec0b9ad7b6c0ff588296048538612345323e8e"},"datadog_checks_base/datadog_checks/base/checks/prometheus/mixins.py":{"sha256":"f05c27d7d8a435a40859bdc5cb63e023ad7293b9e3b055d5d584fb1d66b3add7"},"datadog_checks_base/datadog_checks/base/checks/prometheus/prometheus_base.py":{"sha256":"26aaf5f0513547e2d420f96e8d8697016dd6fa8029fbf73d8d1f9b42f9a78271"},"datadog_checks_base/datadog_checks/base/checks/win/__init__.py":{"sha256":"abb57abfe1704169100b5416695cca68f8d931ac4f24725c2ddef50b4b8cedb0"},"datadog_checks_base/datadog_checks/base/checks/win/__init__.pyi":{"sha256":"f5cede8b0b33b3ef42bf44bfbfaafbe631ffd8f50b8c64d5a58b79f246f79749"},"datadog_checks_base/datadog_checks/base/checks/win/winpdh.py":{"sha256":"8a1178041d7fdc4a16bc54c2019e1331048e2da5a5bf59d633c000aa5b6105ae"},"datadog_checks_base/datadog_checks/base/checks/win/winpdh_base.py":{"sha256":"cf7a4f1c6d07e62c708de1a2d3c70b7b4d156d9dd731d9ed74986083adb74fb2"},"datadog_checks_base/datadog_checks/base/checks/win/winpdh_stub.py":{"sha256":"3397f2064cc0b842afa19ac6f64b506a9c241ffecaf8a388605e55a52f372cc9"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/__init__.py":{"sha256":"abb57abfe1704169100b5416695cca68f8d931ac4f24725c2ddef50b4b8cedb0"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/__init__.pyi":{"sha256":"da5816fdc0d7dfa9868308c14388dc514903e2920def741f5ef94f3bba0af97f"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/base.py":{"sha256":"c5b63c4b89afaae2399bba356fa6da79aba3e8fc44afd7822a5ba03bfc6c8b52"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/counter_type.py":{"sha256":"efbef65c6b56c8f2577b0caf698ca8c15983cbd0f1678da48bd583e5769bb951"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/sampler.py":{"sha256":"34996400b17ccb59210164687296c7d8ba70c6d41bd85f1fcc18426afbd15f8c"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/types.py":{"sha256":"e04f1ed72a69d8ff9e3b180bb11adfb656aeaaf6a9582b956803e872a0abc158"},"datadog_checks_base/datadog_checks/base/checks/windows/__init__.py":{"sha256":"b2e1a32eb8591a9d541a935aa5c56f20fa7ebbc3de68cf24df3a650198f2712a"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/__init__.py":{"sha256":"c4ced6dabda1b7e2b1fe3d22f03bae7bf94433606ffdbab7be0d04b34009e4a1"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/base.py":{"sha256":"7176d05706f8f7a07e92e1da00cddf1375f7dcb3146caa180b8152489289adb7"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/connection.py":{"sha256":"986ed37527d26645c547a794e18fb8f4ae042c98aa7abe82c3863a17178a1106"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/constants.py":{"sha256":"fdaa806dab5cbbd790bfd36a6d509a43d7394be1e4922504455e68a82dc39799"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/counter.py":{"sha256":"96fd974db904c229f4f8f1dca9a7e42ea45f21f03e251a1b7713d094b8c46465"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transform.py":{"sha256":"6d93f17ed0f0d1dd55157e3dca21486be9da18e62529c320a6fb9e491920133f"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/__init__.py":{"sha256":"a8b142ebeee6817e16846d57125966018eac45ef4a9870efba31fbc9c2555e92"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/count.py":{"sha256":"8263467bddb648fe101243270ff9dcf30edba0a616fa65b69f9fbabe975c9a37"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/gauge.py":{"sha256":"73be1f652e85addc433ba64aa2fa75ee1daf85322691a351d8e2deb35af4d681"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/monotonic_count.py":{"sha256":"479c167c31bd2e471baab21d49ce9dce3470b40729dabe153ee5456aa3a5ce2d"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/rate.py":{"sha256":"3e4c739755cf6cfb68fb942b882a23361e5684c4e3c03710c2a63f8b6310052f"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/service_check.py":{"sha256":"c9d78281e503314ede295fc1c1908d89cb022ce7e8b0d7566a6a0713cc64a707"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/temporal_percent.py":{"sha256":"0d7bb591864394237bcc0da58cfcc6e8fc54ac532d6d34c07a084f0a390316f4"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/time_elapsed.py":{"sha256":"6ed4f3d91fd7a79b1345689f0e8f1b6780906c8c093cc6bacd1f6f38233316df"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/utils.py":{"sha256":"a2ffb8f0936f650e8a3c4671cfa5f42187009776d50059ccd79faf9467eab18d"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/utils_win32pdh_fix.py":{"sha256":"9d64eb01b07d5400ff0da693ad2055d8a0e606f8a9185988d38fb00df9f151af"},"datadog_checks_base/datadog_checks/base/config.py":{"sha256":"a9c000e17f6c5d065177041ef0382219ddbdf34541a7549003477af79b57fed5"},"datadog_checks_base/datadog_checks/base/constants.py":{"sha256":"711d7db40a95cac3056dd056a88199a0720a9359064f2a91b029fd15f1503a7c"},"datadog_checks_base/datadog_checks/base/errors.py":{"sha256":"7cf705691df31e94a4328f1ea6f1779517bd2ab1274bc83827475733f9efcecc"},"datadog_checks_base/datadog_checks/base/log.py":{"sha256":"8127f36229a6834cf70e09a7f0da57bb230d8e05f09936e7d0d732517f01d65b"},"datadog_checks_base/datadog_checks/base/stubs/__init__.py":{"sha256":"c2958047dbfb0624db6e64ceea9569b21a9aff3f8f59a613af7df049364bcf77"},"datadog_checks_base/datadog_checks/base/stubs/_util.py":{"sha256":"6431ad41af05ddc1dff3e42f4951cc0780462370bd5600bbb067061af3b46a92"},"datadog_checks_base/datadog_checks/base/stubs/aggregator.py":{"sha256":"6e9e19e949b031c06921dad4420bd3a8dc0ed20b4d779a209017e6dd8af4fa8a"},"datadog_checks_base/datadog_checks/base/stubs/common.py":{"sha256":"646cc5d9d5f2d6e545406746fdbbf3fe930c8942da05ca73adafe4f70a3d7f4e"},"datadog_checks_base/datadog_checks/base/stubs/datadog_agent.py":{"sha256":"7922fb75cdaaf2efd635aab909d876c9ead59478d480001dddd6b16206464728"},"datadog_checks_base/datadog_checks/base/stubs/log.py":{"sha256":"9d7788e4ec8d2915aeebd9f1cf771e01d86a9e496ab7213897acbc34f7bfa74f"},"datadog_checks_base/datadog_checks/base/stubs/similar.py":{"sha256":"dc73bd86dc7d2d5ea945a1356462ac3c4c5abd36e33c73cae9930cd813d88f76"},"datadog_checks_base/datadog_checks/base/stubs/tagging.py":{"sha256":"cf12dd3c2e04a87c46892fc71216da3ac2ffb399d922137c043931d810133aab"},"datadog_checks_base/datadog_checks/base/types.py":{"sha256":"6a76a3652d16d13b31507250c3e24738fd8d49eb82f418ac5d2cbd9804ad9714"},"datadog_checks_base/datadog_checks/base/utils/__init__.py":{"sha256":"4c2d2aee209b36a7188df5396b304da429e2f0b01060e7d8e8500313749910f0"},"datadog_checks_base/datadog_checks/base/utils/_http_utils.py":{"sha256":"c3cc21cf27261b354a94252fef4deb820daa3001744f7779d6307cbb9602e649"},"datadog_checks_base/datadog_checks/base/utils/agent/__init__.py":{"sha256":"a37696bf2dcf872903fe1ed84f7b3adbc3b45b66291e2b3436542c495d4f234e"},"datadog_checks_base/datadog_checks/base/utils/agent/common.py":{"sha256":"d5746c3c959da666f100a2815471813d49b858776f8aad28bee820b69c7b2d6a"},"datadog_checks_base/datadog_checks/base/utils/agent/debug.py":{"sha256":"cde05b34bb7763f5b1a5ff4e74092595d2f2d6098bd14e9b30398e1d20c63373"},"datadog_checks_base/datadog_checks/base/utils/agent/memory.py":{"sha256":"f6f35a21914859b753fdaecbef19e77f12f3246052579e5834b0c64dd4d1ef25"},"datadog_checks_base/datadog_checks/base/utils/agent/packages.py":{"sha256":"9a9924ab4d6c8b3cf3fb431d6ddfedfdd78c6a41c05f5a22675ad21460fe96e1"},"datadog_checks_base/datadog_checks/base/utils/agent/utils.py":{"sha256":"155fe8eab71c53907432b5f299afb8c80aa62a08649734de39fd6785872663ba"},"datadog_checks_base/datadog_checks/base/utils/aws.py":{"sha256":"c3114b5a5545b6fe7f11445db17cc384e45c4e93348c1940a2470c88f575c43f"},"datadog_checks_base/datadog_checks/base/utils/common.py":{"sha256":"3ad98a77914a8e5c09c116e113868898e0563ceccd3d5a9f5d79875e4e0c308c"},"datadog_checks_base/datadog_checks/base/utils/concurrency/__init__.py":{"sha256":"391b2c1396d766e62e6b95022deb067cfbdcad029c0031da0ec5eb5327c0445d"},"datadog_checks_base/datadog_checks/base/utils/concurrency/limiter.py":{"sha256":"8acd99a541237ec2389c11ad5c6d83d1982fd060f7f3f8b98c940291dccf5bf6"},"datadog_checks_base/datadog_checks/base/utils/constants.py":{"sha256":"4304decb8096074340c66dab703fb03d84641328257a4408ac0cc531a6c46b7f"},"datadog_checks_base/datadog_checks/base/utils/containers.py":{"sha256":"4ba73d92f98326e88787d84eeb63db76aae7866e9ed91dcee60187de5e63b4da"},"datadog_checks_base/datadog_checks/base/utils/cron.py":{"sha256":"ea1e1c38de175498bc2f38d6bb1d9f8524a6c4f6d63f165af2463aec81fb655a"},"datadog_checks_base/datadog_checks/base/utils/date.py":{"sha256":"2499aa3fce0281570527472f02632ef04b4ceaff7ab48112b9c40d9bd78a7847"},"datadog_checks_base/datadog_checks/base/utils/db/__init__.py":{"sha256":"1154dcd85b671d62c75c8dccefd8f2327f72a5900c6bd7aa1b710a2c088c17e3"},"datadog_checks_base/datadog_checks/base/utils/db/__init__.pyi":{"sha256":"7b0986c71c89e76c00698c4d65a862da4a0452775d7ef1dc9f71d8c50dd152bd"},"datadog_checks_base/datadog_checks/base/utils/db/core.py":{"sha256":"20d7e8375b852bd5debf6cbde94eba7374fc1e54ad501e07115ae763e44c9ad7"},"datadog_checks_base/datadog_checks/base/utils/db/health.py":{"sha256":"ae225a2489ceb9814adf2d30347d7d1e88c89173f041a32dbf1bb23c24719d96"},"datadog_checks_base/datadog_checks/base/utils/db/query.py":{"sha256":"83aaa8962c3aa34b3794db2f3e2bc392db19beb61209d85d2121771f254a3ef5"},"datadog_checks_base/datadog_checks/base/utils/db/schemas.py":{"sha256":"3df1d178300d3774d764f284292fb287ddb44e831a5471198197a64124bb5773"},"datadog_checks_base/datadog_checks/base/utils/db/sql.py":{"sha256":"a2213341afef0bfc3753ae5516b142a101d68f91902cb46548ed027e24a5a780"},"datadog_checks_base/datadog_checks/base/utils/db/sql_commenter.py":{"sha256":"aff79f2ba4c6450c4cffe423fa774425d102938ec9e270858e4572c6ed579af5"},"datadog_checks_base/datadog_checks/base/utils/db/statement_metrics.py":{"sha256":"b13def2f8c1900853652b0e73727635867f6f1270106e8e1d42c6d8333db127c"},"datadog_checks_base/datadog_checks/base/utils/db/timed_cache.py":{"sha256":"6bd2ace4a294bc4c41e863804d74d208b6a656d2c3f75f439fa1e9c1e18ab45c"},"datadog_checks_base/datadog_checks/base/utils/db/transform.py":{"sha256":"0bf58eac79fc74313171969d5af9311b9a3cba4203c306009937870df7ceb017"},"datadog_checks_base/datadog_checks/base/utils/db/types.py":{"sha256":"38b5f63aae7c2503c5043e28a94a422e400fee8bd118dfe2d6f164d44d0df0b8"},"datadog_checks_base/datadog_checks/base/utils/db/utils.py":{"sha256":"3046c5cf38ad77dfa7c205596d40cdc4ce7cdb3c94f686065edd59bf1eba6bac"},"datadog_checks_base/datadog_checks/base/utils/diagnose.py":{"sha256":"78b31ed2d212a64cd2df2c5547cdc81f1a2b4097c74ff5e2e82ab8cf344dc552"},"datadog_checks_base/datadog_checks/base/utils/discovery/__init__.py":{"sha256":"bcf08e76c4e105c06314944f8439ba22c6463b093c1e5bdc8b009efe5f1d28b9"},"datadog_checks_base/datadog_checks/base/utils/discovery/__init__.pyi":{"sha256":"49c54b5353638fd7a46667b096d6f47142c8e81ca5b2c5477e7e0270f35ecabf"},"datadog_checks_base/datadog_checks/base/utils/discovery/cache.py":{"sha256":"7fd2f703b619a59fa6a59a452308ec6b969bf5c64c1a4a9d7ad76bf44a5a95b2"},"datadog_checks_base/datadog_checks/base/utils/discovery/discovery.py":{"sha256":"9bcc3d55162eefc79dd202af56ee1c84dad1752302aae24edd85359b378e734d"},"datadog_checks_base/datadog_checks/base/utils/discovery/filter.py":{"sha256":"459f13ddb2cfe2e84af0a5f01aa76860c254f4edc402f3924e119ae702d0311f"},"datadog_checks_base/datadog_checks/base/utils/fips.py":{"sha256":"bf19b72bbc1340a61e9cfd4b6d793ba6627c580ea5dfaec14c918134ed0392f4"},"datadog_checks_base/datadog_checks/base/utils/format/__init__.py":{"sha256":"315b8b9d1858f958ca223629dc539346f2273b8a942c538d581091c9ac353b00"},"datadog_checks_base/datadog_checks/base/utils/format/_json.py":{"sha256":"09ae88905257e012aeaa1140946596b1e1e605213101cba78946895159f0c302"},"datadog_checks_base/datadog_checks/base/utils/format/json.py":{"sha256":"1b2f3873d974ccecbbdf5a820e2cb6d47a616620b7c36c12e8e45aebae0c1d9d"},"datadog_checks_base/datadog_checks/base/utils/functions.py":{"sha256":"8869726f147a68f3c494dc4d6f610b3b36e4df6f23f4e541031ade749c5d091c"},"datadog_checks_base/datadog_checks/base/utils/hashing.py":{"sha256":"74d01edd152f77b4c4dd699c0d7e9261085368c5ecc710c7b9ee1f3e416e2f94"},"datadog_checks_base/datadog_checks/base/utils/headers.py":{"sha256":"d1249d0bbd63c1a07ad413837eeb1a84256bd5ce7a1af4fd8b0b7b72275c1cfd"},"datadog_checks_base/datadog_checks/base/utils/http.py":{"sha256":"78f4b32fbc7fc6c6f57675c9c94d9f057220394d29e541592291b6017fe36590"},"datadog_checks_base/datadog_checks/base/utils/limiter.py":{"sha256":"6114eb3c25f54b912d1cb55c3fff8611fcd1a2db3f2d3732d5ffee1d956cf748"},"datadog_checks_base/datadog_checks/base/utils/metadata/__init__.py":{"sha256":"1154dcd85b671d62c75c8dccefd8f2327f72a5900c6bd7aa1b710a2c088c17e3"},"datadog_checks_base/datadog_checks/base/utils/metadata/__init__.pyi":{"sha256":"595a2fd3b68f28477275ccbc7b902177d08c4ff0dc43188eb42aa31b1d6449fe"},"datadog_checks_base/datadog_checks/base/utils/metadata/constants.py":{"sha256":"5c77cfc2f40c6f2344d8562607fed7c968862343761b17415dbb572f87839e27"},"datadog_checks_base/datadog_checks/base/utils/metadata/core.py":{"sha256":"eeb20aadfc3594d02870ef4705dd8cebf83e70a10fdaf99838e3cee8e926b939"},"datadog_checks_base/datadog_checks/base/utils/metadata/utils.py":{"sha256":"d3756946a79fa280add151008bd06fa25643de6dfeba14f6af642e276c5ce03e"},"datadog_checks_base/datadog_checks/base/utils/metadata/version.py":{"sha256":"ad0ebf687a6b0387530a47943306dd04dbf048e969385efadf6b16dbae2c75bb"},"datadog_checks_base/datadog_checks/base/utils/models/__init__.py":{"sha256":"b2e1a32eb8591a9d541a935aa5c56f20fa7ebbc3de68cf24df3a650198f2712a"},"datadog_checks_base/datadog_checks/base/utils/models/types.py":{"sha256":"c9b504a7dcffac396bdbea089158c4581fa6440bd4c28103a4051c6504c4208c"},"datadog_checks_base/datadog_checks/base/utils/models/validation/__init__.py":{"sha256":"c2730cf9d93ee0f59e226c39111fdb64ab6cf5c3f8111ec8523d679493143793"},"datadog_checks_base/datadog_checks/base/utils/models/validation/core.py":{"sha256":"e58a070f63eaceeaf03c6d4405758c81737dd7d569f3b358001e004dd440fcff"},"datadog_checks_base/datadog_checks/base/utils/models/validation/security.py":{"sha256":"d0c0f2c42bb92ecccb6521d5782fe2ae178fb9eec59b6fccc34db0de57dc5b7c"},"datadog_checks_base/datadog_checks/base/utils/models/validation/utils.py":{"sha256":"24be22141ff0da08f870aca800b92e11a2218195a36434016cc982e14e1fafa5"},"datadog_checks_base/datadog_checks/base/utils/persistent_cache.py":{"sha256":"d539347645991fcc87e08fdb319827861cf68dc65c232bbce5d36906fcb996c3"},"datadog_checks_base/datadog_checks/base/utils/platform.py":{"sha256":"c16f1fe972a8e091f1beed6c3740e92c39988d2fdc0aef06a0abdf4e3223e323"},"datadog_checks_base/datadog_checks/base/utils/prometheus/__init__.py":{"sha256":"a4d2d7db491726bb500c88450fa8e79c8135f2f175f4c7402809b7e1a3a583bc"},"datadog_checks_base/datadog_checks/base/utils/prometheus/__init__.pyi":{"sha256":"e774ac8fb7cffb2caf624f3990e79b517e487be6e61e31fe6d52989fd5f8ed67"},"datadog_checks_base/datadog_checks/base/utils/prometheus/functions.py":{"sha256":"c674f283d8937acffcde65a57351acf05150d6349163e94b3e8e530801626f2b"},"datadog_checks_base/datadog_checks/base/utils/prometheus/metrics_pb2.py":{"sha256":"8bfee9b8006b7cde3209393ebe13b0dc617fff94386a20f12b25efb5069df6ca"},"datadog_checks_base/datadog_checks/base/utils/replay/__init__.py":{"sha256":"391b2c1396d766e62e6b95022deb067cfbdcad029c0031da0ec5eb5327c0445d"},"datadog_checks_base/datadog_checks/base/utils/replay/constants.py":{"sha256":"7b10c6b0380b23bbb5196bde7a55dd8335894e3c47a18266413ee8ef0d4509e3"},"datadog_checks_base/datadog_checks/base/utils/replay/execute.py":{"sha256":"bcbec84fbff28e18eda93b4bc4a8944571480ba4997db388fb9a6acc9c0d202b"},"datadog_checks_base/datadog_checks/base/utils/replay/redirect.py":{"sha256":"44b93f734216035c3ec66afa750c16eca185909b750740e6417e55591b48a559"},"datadog_checks_base/datadog_checks/base/utils/secrets.py":{"sha256":"4e3e4c04ea321975c3581dc7afeed4283cb9195d4d6499053d8e13e2ff4f1c78"},"datadog_checks_base/datadog_checks/base/utils/serialization.py":{"sha256":"a5c454cd92146643ac7e718319bc5e530197ad2b0597ff6b2e10347a40ff019f"},"datadog_checks_base/datadog_checks/base/utils/subprocess_output.py":{"sha256":"0dbab19fc163a3b7f78e5fbc1363b0ddc564462eab3681f9e3bfe27ccb0ba95c"},"datadog_checks_base/datadog_checks/base/utils/tagging.py":{"sha256":"6bed3fa5718ec20e1ec260e22689fbaccffde9926f5691d5330872d49e51ac42"},"datadog_checks_base/datadog_checks/base/utils/tailfile.py":{"sha256":"419987f1e0b17829455913199facc3c203b1d72e5d017739c88feecc40a3d1a9"},"datadog_checks_base/datadog_checks/base/utils/time.py":{"sha256":"70dcbb0adb09cd250c8bb27edd645e65552f37260e1a427022da89318d35aaa0"},"datadog_checks_base/datadog_checks/base/utils/timeout.py":{"sha256":"78e059a1f14dfa13aee7125e30e17769cfe87dccbd118ebe92f981bcfe101058"},"datadog_checks_base/datadog_checks/base/utils/tls.py":{"sha256":"b68ff7dcc692123be8eb3bea466f60291c7f664f40caae77b67662b8abcdcb6e"},"datadog_checks_base/datadog_checks/base/utils/tracing.py":{"sha256":"d9066340a34abe8c11605a6a390738b14a18516bba249289a1f93eaefb2d5206"},"datadog_checks_base/datadog_checks/base/utils/tracking.py":{"sha256":"158228baabb7281f89b31831335897e48a6ffdc5a1b3ccd03933784b15ce909e"},"datadog_checks_base/datadog_checks/checks/__init__.py":{"sha256":"76381faa72acfce6863031501a53b955d2d047150023e5f828424b2e53e95483"},"datadog_checks_base/datadog_checks/checks/base.py":{"sha256":"df061b86e80d0375a5aedffe104a4198949297c9472ae52dad13fe9d5d8a05f4"},"datadog_checks_base/datadog_checks/checks/libs/__init__.py":{"sha256":"2300c3103843a8f3d4d63e0fcaf78691dbb508cbfd91b7de2bdd0802f981c777"},"datadog_checks_base/datadog_checks/checks/libs/thread_pool.py":{"sha256":"747147080f5d03c2742e233e4bd635d4c58abff8cf5c803fe5881f776c1603b4"},"datadog_checks_base/datadog_checks/checks/libs/timer.py":{"sha256":"a35b1970916e9035ae71d185b6506bbd2b798e26ef1b7b91fc3b30788b19dd49"},"datadog_checks_base/datadog_checks/checks/libs/vmware/__init__.py":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_base/datadog_checks/checks/libs/vmware/all_metrics.py":{"sha256":"849ca20bfd3b86aa8c8eeb88732b4026fd8a0e74a0a96ab6cbe269270b71a8c3"},"datadog_checks_base/datadog_checks/checks/libs/vmware/basic_metrics.py":{"sha256":"683af414d39b8d77d66fd97146999de4bd7a7be9ab934ed9224867a0b74c099f"},"datadog_checks_base/datadog_checks/checks/libs/wmi/__init__.py":{"sha256":"2300c3103843a8f3d4d63e0fcaf78691dbb508cbfd91b7de2bdd0802f981c777"},"datadog_checks_base/datadog_checks/checks/libs/wmi/sampler.py":{"sha256":"e3c981d33289c55ada249abeb51b1c5095c06cb11b9991f9a4228a695251e455"},"datadog_checks_base/datadog_checks/checks/network.py":{"sha256":"e5b7d11f19ac5286897259c2ac1e8209ee7bee94df199d5155e1b174cce6afbc"},"datadog_checks_base/datadog_checks/checks/network_checks.py":{"sha256":"cdb77741ebeaa7b6a13616873b5725009b7566a77ceef013fe5dd1c76cbdd81b"},"datadog_checks_base/datadog_checks/checks/openmetrics/__init__.py":{"sha256":"96b910b1c359a0b37a0a8753b6e1e50c803ae35bf4f1e7a31418678cf16792c0"},"datadog_checks_base/datadog_checks/checks/openmetrics/base_check.py":{"sha256":"a9ccd2133baa1058f744e494e2bb43cb5221fbbb41b6c3b8a0553ead7f6a851f"},"datadog_checks_base/datadog_checks/checks/openmetrics/mixins.py":{"sha256":"b5b9cf9d77c8dda6d752a4d37d303405fa1935ac071b17a4e8b055160b7d2a28"},"datadog_checks_base/datadog_checks/checks/prometheus/__init__.py":{"sha256":"a12ac852908b6eb9f3b594e893c41a38951a9a1e030b6286c20e76aec9965c8b"},"datadog_checks_base/datadog_checks/checks/prometheus/base_check.py":{"sha256":"882984f28171bfde4a2c34c25f609b5a758917f0c9b9e00b2ba9a0d489ba1e19"},"datadog_checks_base/datadog_checks/checks/prometheus/mixins.py":{"sha256":"aa652ec3963f90c1e7c552d35243d3863f737fa9de5e45131ca55758c5e00de5"},"datadog_checks_base/datadog_checks/checks/prometheus/prometheus_base.py":{"sha256":"434576db21c019a7366f5350b8e305c0790509aadd9cbd980f6c3ac22b87874f"},"datadog_checks_base/datadog_checks/checks/prometheus_check/__init__.py":{"sha256":"9b5434e894e03018e342ee726f635de62122bf0e1d8f59d3f0109f89a95d890d"},"datadog_checks_base/datadog_checks/checks/win/__init__.py":{"sha256":"4441d475ac7181f8e7edf1037da1310d776c647883d0362a5acfb88e44e4d45e"},"datadog_checks_base/datadog_checks/checks/win/winpdh.py":{"sha256":"864f9f437a351bb82a2962e15a1198cc6271f9cc25c3c73522402954fa42ef9e"},"datadog_checks_base/datadog_checks/checks/win/winpdh_base.py":{"sha256":"269e7c39a6562687aa6ad022b1b88c85b5f6be403c11a8412775b3c55715196e"},"datadog_checks_base/datadog_checks/checks/win/winpdh_stub.py":{"sha256":"a1895061a3be05415b331c1b17d2c02b1f912f36ed238948c46d7af68025d7ed"},"datadog_checks_base/datadog_checks/checks/win/wmi/__init__.py":{"sha256":"51008a1bf148ec1c7bc0bb8f6ad3be19ba950e6c13b5cb84a2fd2684fb66327e"},"datadog_checks_base/datadog_checks/checks/win/wmi/counter_type.py":{"sha256":"01ac5dc9d1518c74c4b621a1da0b901da5ffc954abcf81972f8e478abdb098a7"},"datadog_checks_base/datadog_checks/checks/win/wmi/sampler.py":{"sha256":"bbfeea3683c40059f5e1ff52fc459e82200727041a187328d65f58b92b445cdd"},"datadog_checks_base/datadog_checks/checks/winwmi_check.py":{"sha256":"907ea75f4055e675b732171687ce6148d6484d067b36726b942b4e9c5e1d747b"},"datadog_checks_base/datadog_checks/config.py":{"sha256":"3eb01719d94b9e857654c41f7ff9e849a489274c20e010221a7c3b8c240b4a29"},"datadog_checks_base/datadog_checks/errors.py":{"sha256":"785c269eb5fe6dab4881bbbe889cac7aa00f34eff8ae4d54b9a28af3d7af2e18"},"datadog_checks_base/datadog_checks/log.py":{"sha256":"a2bbce80c286344b2a4932da942010a563fea2ea2ba46d40ec69fe8f69910fcd"},"datadog_checks_base/datadog_checks/py.typed":{"sha256":"95aebb28195b8d737effe0df18d71d39c8d8ba6569286fd3930fbc9f9767181e"},"datadog_checks_base/datadog_checks/stubs/__init__.py":{"sha256":"331c49e4d1a353ded64777893a96906746f386f03cf32b30135aa260665377ec"},"datadog_checks_base/datadog_checks/stubs/_util.py":{"sha256":"9989e9f7fbeca50c1359c06188f60c309dc421c40f4a9a407147d18c42c180b5"},"datadog_checks_base/datadog_checks/stubs/aggregator.py":{"sha256":"ea230225c9c41fbb1885a38741cccf1809034d9b1fd696eb6efde1de6bfba762"},"datadog_checks_base/datadog_checks/stubs/datadog_agent.py":{"sha256":"b167bb8f650441e0f3762aa3e0ffe73e1921157f34ff90abe47723db963ec6bf"},"datadog_checks_base/datadog_checks/utils/__init__.py":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_base/datadog_checks/utils/common.py":{"sha256":"470a0220a572f2f6df6b61353fb63b82447d569274d15b6e3f5f0c12b5e7f6b9"},"datadog_checks_base/datadog_checks/utils/containers.py":{"sha256":"ca56286c527f7d5f940b0baf5a66a4eba6ad2df036759f6000b0985835c63a29"},"datadog_checks_base/datadog_checks/utils/headers.py":{"sha256":"8f92abe525d4947ba4dd41870d0367f4cda884df95e57d9fce62718f0e8fe8da"},"datadog_checks_base/datadog_checks/utils/limiter.py":{"sha256":"1aad3f848119c3aaa92394962ffbb331a22991bcef173b242347a54cffef22c1"},"datadog_checks_base/datadog_checks/utils/platform.py":{"sha256":"76ca8472c0bf63b866e28aea3bc449e4de63905a41ee9c8662f09e5eb6fef571"},"datadog_checks_base/datadog_checks/utils/prometheus/__init__.py":{"sha256":"f16c179ccf60d6c7d2e76ebb4180895ff85df0c665e6446006043f4b374d757b"},"datadog_checks_base/datadog_checks/utils/prometheus/functions.py":{"sha256":"e2f5ac4c62e0ba31f0758668d2d940424a833c7a1fa9424cde4f5e22d26a1114"},"datadog_checks_base/datadog_checks/utils/prometheus/metrics_pb2.py":{"sha256":"c60dd47541dee138de478b35dcb50a6765355954ade94eb38ec5511ba957e9d7"},"datadog_checks_base/datadog_checks/utils/proxy.py":{"sha256":"723edeaf00a1ee813aa4a6467fc34c3ae419f354c6b6172de678e39b864a8bd7"},"datadog_checks_base/datadog_checks/utils/subprocess_output.py":{"sha256":"80dea34445564d9eee264533455310e69c72b4d640e369ea8c97a365717a64c2"},"datadog_checks_base/datadog_checks/utils/tailfile.py":{"sha256":"6c4aa2725fac2e0cb0f660f545d5a8b3c1954a50a49f1e58c86ddf5cc068c137"},"datadog_checks_base/datadog_checks/utils/timeout.py":{"sha256":"42e848b0a6686bf335dfe8040b07acbb9219c12317cfdf564f0a9a974262c913"},"datadog_checks_base/datadog_checks/utils/tracing.py":{"sha256":"1d06d06a428cf8bc3be4c0e422d6982588a94ba60edb867fca60d5c43b31e435"},"datadog_checks_base/pyproject.toml":{"sha256":"7d91f3690101c2689f0ee417378ae4d7fd322d97ccc38e58784a667286cbc9dc"}}}} \ No newline at end of file diff --git a/datadog_checks_base/CHANGELOG.md b/datadog_checks_base/CHANGELOG.md index 910257ca74c4f..8e5fe65c04776 100644 --- a/datadog_checks_base/CHANGELOG.md +++ b/datadog_checks_base/CHANGELOG.md @@ -2,6 +2,17 @@ +## 37.38.0 / 2026-05-29 + +***Security***: + +* Bump urllib3 to 2.7.0 to address CVE-2026-44431 and CVE-2026-44432. ([#23767](https://github.com/DataDog/integrations-core/pull/23767)) + +***Added***: + +* Add file-based YAML metrics loading for OpenMetrics V2 checks with composable predicates ([#22750](https://github.com/DataDog/integrations-core/pull/22750)) +* Add ``CronExpression`` and ``CronScheduler`` utilities for cron-style scheduling inside check methods. ([#23741](https://github.com/DataDog/integrations-core/pull/23741)) + ## 37.37.0 / 2026-05-14 ***Added***: diff --git a/datadog_checks_base/changelog.d/22750.added b/datadog_checks_base/changelog.d/22750.added deleted file mode 100644 index e8a49db170139..0000000000000 --- a/datadog_checks_base/changelog.d/22750.added +++ /dev/null @@ -1 +0,0 @@ -Add file-based YAML metrics loading for OpenMetrics V2 checks with composable predicates \ No newline at end of file diff --git a/datadog_checks_base/changelog.d/23741.added b/datadog_checks_base/changelog.d/23741.added deleted file mode 100644 index 069f5faaf08c5..0000000000000 --- a/datadog_checks_base/changelog.d/23741.added +++ /dev/null @@ -1 +0,0 @@ -Add ``CronExpression`` and ``CronScheduler`` utilities for cron-style scheduling inside check methods. diff --git a/datadog_checks_base/changelog.d/23767.security b/datadog_checks_base/changelog.d/23767.security deleted file mode 100644 index d28d5a0302e88..0000000000000 --- a/datadog_checks_base/changelog.d/23767.security +++ /dev/null @@ -1 +0,0 @@ -Bump urllib3 to 2.7.0 to address CVE-2026-44431 and CVE-2026-44432. diff --git a/datadog_checks_base/datadog_checks/base/__about__.py b/datadog_checks_base/datadog_checks/base/__about__.py index 9d9976609a1d1..aa3c71489a1d0 100644 --- a/datadog_checks_base/datadog_checks/base/__about__.py +++ b/datadog_checks_base/datadog_checks/base/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "37.37.0" +__version__ = "37.38.0" diff --git a/requirements-agent-release.txt b/requirements-agent-release.txt index edb6a89366bf0..4e4421321fb79 100644 --- a/requirements-agent-release.txt +++ b/requirements-agent-release.txt @@ -34,7 +34,7 @@ datadog-ceph==4.5.1; sys_platform != 'win32' datadog-cert-manager==6.4.1 datadog-checkpoint-harmony-endpoint==1.2.0 datadog-checkpoint-quantum-firewall==1.3.0 -datadog-checks-base==37.37.0 +datadog-checks-base==37.38.0 datadog-checks-dependency-provider==3.2.0 datadog-checks-downloader==9.1.0 datadog-cilium==6.4.1 From 8764234130c8cc0445b6d88d033b71980b1c65c9 Mon Sep 17 00:00:00 2001 From: Juanpe Araque Date: Fri, 29 May 2026 15:01:46 +0100 Subject: [PATCH 4/6] Revert no-op release of datadog_checks_base (#23878) * Revert "Aarakke/release checks base (#23877)" This reverts commit 8abadadf3313dac49b2597955e79a3e3fa636438. * Restore in-toto from master --- datadog_checks_base/CHANGELOG.md | 11 ----------- datadog_checks_base/changelog.d/22750.added | 1 + datadog_checks_base/changelog.d/23741.added | 1 + datadog_checks_base/changelog.d/23767.security | 1 + datadog_checks_base/datadog_checks/base/__about__.py | 2 +- requirements-agent-release.txt | 2 +- 6 files changed, 5 insertions(+), 13 deletions(-) create mode 100644 datadog_checks_base/changelog.d/22750.added create mode 100644 datadog_checks_base/changelog.d/23741.added create mode 100644 datadog_checks_base/changelog.d/23767.security diff --git a/datadog_checks_base/CHANGELOG.md b/datadog_checks_base/CHANGELOG.md index 8e5fe65c04776..910257ca74c4f 100644 --- a/datadog_checks_base/CHANGELOG.md +++ b/datadog_checks_base/CHANGELOG.md @@ -2,17 +2,6 @@ -## 37.38.0 / 2026-05-29 - -***Security***: - -* Bump urllib3 to 2.7.0 to address CVE-2026-44431 and CVE-2026-44432. ([#23767](https://github.com/DataDog/integrations-core/pull/23767)) - -***Added***: - -* Add file-based YAML metrics loading for OpenMetrics V2 checks with composable predicates ([#22750](https://github.com/DataDog/integrations-core/pull/22750)) -* Add ``CronExpression`` and ``CronScheduler`` utilities for cron-style scheduling inside check methods. ([#23741](https://github.com/DataDog/integrations-core/pull/23741)) - ## 37.37.0 / 2026-05-14 ***Added***: diff --git a/datadog_checks_base/changelog.d/22750.added b/datadog_checks_base/changelog.d/22750.added new file mode 100644 index 0000000000000..e8a49db170139 --- /dev/null +++ b/datadog_checks_base/changelog.d/22750.added @@ -0,0 +1 @@ +Add file-based YAML metrics loading for OpenMetrics V2 checks with composable predicates \ No newline at end of file diff --git a/datadog_checks_base/changelog.d/23741.added b/datadog_checks_base/changelog.d/23741.added new file mode 100644 index 0000000000000..069f5faaf08c5 --- /dev/null +++ b/datadog_checks_base/changelog.d/23741.added @@ -0,0 +1 @@ +Add ``CronExpression`` and ``CronScheduler`` utilities for cron-style scheduling inside check methods. diff --git a/datadog_checks_base/changelog.d/23767.security b/datadog_checks_base/changelog.d/23767.security new file mode 100644 index 0000000000000..d28d5a0302e88 --- /dev/null +++ b/datadog_checks_base/changelog.d/23767.security @@ -0,0 +1 @@ +Bump urllib3 to 2.7.0 to address CVE-2026-44431 and CVE-2026-44432. diff --git a/datadog_checks_base/datadog_checks/base/__about__.py b/datadog_checks_base/datadog_checks/base/__about__.py index aa3c71489a1d0..9d9976609a1d1 100644 --- a/datadog_checks_base/datadog_checks/base/__about__.py +++ b/datadog_checks_base/datadog_checks/base/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "37.38.0" +__version__ = "37.37.0" diff --git a/requirements-agent-release.txt b/requirements-agent-release.txt index 4e4421321fb79..edb6a89366bf0 100644 --- a/requirements-agent-release.txt +++ b/requirements-agent-release.txt @@ -34,7 +34,7 @@ datadog-ceph==4.5.1; sys_platform != 'win32' datadog-cert-manager==6.4.1 datadog-checkpoint-harmony-endpoint==1.2.0 datadog-checkpoint-quantum-firewall==1.3.0 -datadog-checks-base==37.38.0 +datadog-checks-base==37.37.0 datadog-checks-dependency-provider==3.2.0 datadog-checks-downloader==9.1.0 datadog-cilium==6.4.1 From 8f5d6be4a299ac08bf9415ce3ab424bd7f94e9ef Mon Sep 17 00:00:00 2001 From: Juanpe Araque Date: Fri, 29 May 2026 15:07:44 +0100 Subject: [PATCH 5/6] [Backport] [7.80.x] Release base check (#23879) --- datadog_checks_base/CHANGELOG.md | 6 ++++++ datadog_checks_base/changelog.d/23767.security | 1 - datadog_checks_base/datadog_checks/base/__about__.py | 2 +- requirements-agent-release.txt | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) delete mode 100644 datadog_checks_base/changelog.d/23767.security diff --git a/datadog_checks_base/CHANGELOG.md b/datadog_checks_base/CHANGELOG.md index 910257ca74c4f..3d749a99ab496 100644 --- a/datadog_checks_base/CHANGELOG.md +++ b/datadog_checks_base/CHANGELOG.md @@ -2,6 +2,12 @@ +## 37.38.0 / 2026-05-22 + +***Security***: + +* Bump urllib3 to 2.7.0 to address CVE-2026-44431 and CVE-2026-44432. ([#23767](https://github.com/DataDog/integrations-core/pull/23767)) + ## 37.37.0 / 2026-05-14 ***Added***: diff --git a/datadog_checks_base/changelog.d/23767.security b/datadog_checks_base/changelog.d/23767.security deleted file mode 100644 index d28d5a0302e88..0000000000000 --- a/datadog_checks_base/changelog.d/23767.security +++ /dev/null @@ -1 +0,0 @@ -Bump urllib3 to 2.7.0 to address CVE-2026-44431 and CVE-2026-44432. diff --git a/datadog_checks_base/datadog_checks/base/__about__.py b/datadog_checks_base/datadog_checks/base/__about__.py index 9d9976609a1d1..aa3c71489a1d0 100644 --- a/datadog_checks_base/datadog_checks/base/__about__.py +++ b/datadog_checks_base/datadog_checks/base/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "37.37.0" +__version__ = "37.38.0" diff --git a/requirements-agent-release.txt b/requirements-agent-release.txt index edb6a89366bf0..4e4421321fb79 100644 --- a/requirements-agent-release.txt +++ b/requirements-agent-release.txt @@ -34,7 +34,7 @@ datadog-ceph==4.5.1; sys_platform != 'win32' datadog-cert-manager==6.4.1 datadog-checkpoint-harmony-endpoint==1.2.0 datadog-checkpoint-quantum-firewall==1.3.0 -datadog-checks-base==37.37.0 +datadog-checks-base==37.38.0 datadog-checks-dependency-provider==3.2.0 datadog-checks-downloader==9.1.0 datadog-cilium==6.4.1 From 8ea556ca358117957d7ff1205e87e57bb8329a2d Mon Sep 17 00:00:00 2001 From: Juanpe Araque Date: Fri, 29 May 2026 15:15:23 +0100 Subject: [PATCH 6/6] [Release] datadog_checks_base 37.39.0 (#23880) * [Release] Bumped datadog_checks_base version to 37.39.0 * [Release] Update metadata --- .in-toto/tag.4e75cfa1.link | 2 +- datadog_checks_base/CHANGELOG.md | 7 +++++++ datadog_checks_base/changelog.d/22750.added | 1 - datadog_checks_base/changelog.d/23741.added | 1 - datadog_checks_base/datadog_checks/base/__about__.py | 2 +- requirements-agent-release.txt | 2 +- 6 files changed, 10 insertions(+), 5 deletions(-) delete mode 100644 datadog_checks_base/changelog.d/22750.added delete mode 100644 datadog_checks_base/changelog.d/23741.added diff --git a/.in-toto/tag.4e75cfa1.link b/.in-toto/tag.4e75cfa1.link index a50f48402edd4..533dcc149c377 100644 --- a/.in-toto/tag.4e75cfa1.link +++ b/.in-toto/tag.4e75cfa1.link @@ -1 +1 @@ -{"signatures":[{"keyid":"4e75cfa1b0b5240a7448b136975c1e0adf56b392","other_headers":"04000108001d1621044e75cfa1b0b5240a7448b136975c1e0adf56b39205026a19955b","signature":"0e6f11b3ae4a4185969948e6b5f9ca3ad5c63cbb1df67f590b709672be4945969e1e20c70283142ee65844632c198bede3655e612c55d7955e42da56e1dccb7d4aa0478bfc8baec905108f3f962c55de15d4c21e0d0d9aac80ce87c6c7a158a9da6a20a15ef3075107c7462c6784485380b7a4cc83b80cf4bbb3de3618a5986cb97eb9745d04efbacb16b3b5f2dd5ac632293e4e4effd9b3ded449ba30dfae4737f39fbb5aa7a5e5be5938ecf992c2746b06ed0ed2e1106454ee463d13fc56eeb8f29c2deb3706bb47c3bf25bcf073b9a32441c7b7089c5860da9c59f5d1817176a046bb40b94f7ab1661aaad25b7470651f80ba09da3458de6b35e349e83be984f3dea2210231b1d18774cfc7f4ddda4f18473930b04c2f7ba90e4eabd20aae1cda68151169d815f879f4c08a037167c90b6f485c80c0b674daac8ea5284ed2f2b4476102633fad9c45eb8189e0df5ed27ca5c92c4eea15cbdb4aa86886e2c4994591e70558c59b9a3d23a4fd53c9c07b9c44b214d2c5623533e48c53f356ec37b2a99302f11f8299942fca9eecb685dee70c5d504a1683963c9a96fc7944e164459a606ae3db219512bc610ce663e22a9569559c1627972d6649645339fad1cbb77d20ba75d3226c16bf44ccc97430756128210e628ba4451030b6d574305e7dfd2afc363a7280b982ccccb8d7cf00f80b00787dd7208a8ad773654c9924bd"}],"signed":{"_type":"link","byproducts":{},"command":[],"environment":{},"materials":{},"name":"tag","products":{"datadog_checks_base/datadog_checks/__init__.py":{"sha256":"9a3c64b8b00c94da4b4f34618d803d3255808caf21b8afa9195c84b61da66b6a"},"datadog_checks_base/datadog_checks/base/__about__.py":{"sha256":"53ef54b2d2928c1859542ef20055afc45c7c681e025a9e41d91daf7d14936e57"},"datadog_checks_base/datadog_checks/base/__init__.py":{"sha256":"c967a048b13e4d9588192bc08898fd3d2ad4c7394ea3f51524bb76cce459f049"},"datadog_checks_base/datadog_checks/base/__init__.pyi":{"sha256":"6b863524870f27ca73f6d464040be359db6f490c19c5b31906e4662224acff81"},"datadog_checks_base/datadog_checks/base/agent.py":{"sha256":"9d7f71fc16188b344a18d61f5eae73ed2d0567dc5c5ffc1ddadbb1a467b7ffc9"},"datadog_checks_base/datadog_checks/base/checks/__init__.py":{"sha256":"abb57abfe1704169100b5416695cca68f8d931ac4f24725c2ddef50b4b8cedb0"},"datadog_checks_base/datadog_checks/base/checks/__init__.pyi":{"sha256":"c9d7ad97a904142482869a58421b3c9af20fe65eaf9d90f901b2c004685b15c3"},"datadog_checks_base/datadog_checks/base/checks/_config_ast.py":{"sha256":"bf5ac087039117cd1bde47d92a17facd767b4b90f703640f50ae2d4a8f1ea3e6"},"datadog_checks_base/datadog_checks/base/checks/base.py":{"sha256":"83997b4537c377246e8ea3f5945a539d521d0fceb90bf3c2886fa052f79774af"},"datadog_checks_base/datadog_checks/base/checks/db.py":{"sha256":"f41784c2e0c9e530d796aeb2257615b3d4ff5256c26b76d6ad23aae59b210ca7"},"datadog_checks_base/datadog_checks/base/checks/kube_leader/__init__.py":{"sha256":"abb57abfe1704169100b5416695cca68f8d931ac4f24725c2ddef50b4b8cedb0"},"datadog_checks_base/datadog_checks/base/checks/kube_leader/__init__.pyi":{"sha256":"5060f2c28470982233dd98a2d6e1eca7b8e2146591767e5f14c659c60186950b"},"datadog_checks_base/datadog_checks/base/checks/kube_leader/base_check.py":{"sha256":"c7cc1a3febf3b49ccaf5ee8a40b1922c57eb59dcf029cb161b308bd5bb3a5917"},"datadog_checks_base/datadog_checks/base/checks/kube_leader/mixins.py":{"sha256":"bc95058738b055dbd572dd16bc228593aa0cdc76239d336dc31092205bcec87f"},"datadog_checks_base/datadog_checks/base/checks/kube_leader/record.py":{"sha256":"6aa334545b055aeda90343b976cfbabf959038cee58103321b0a26e90eaa09a5"},"datadog_checks_base/datadog_checks/base/checks/kubelet_base/__init__.py":{"sha256":"d70624d464bcea37efdfefd4cb8cdb26fb8e0183eecbdcb8f450f4288455950c"},"datadog_checks_base/datadog_checks/base/checks/kubelet_base/__init__.pyi":{"sha256":"0bec4967ccee71b1bbc80c2db3b27e4819de7ac1be4cf80bd5b06b166e0bf2f7"},"datadog_checks_base/datadog_checks/base/checks/kubelet_base/base.py":{"sha256":"e48a29c2d9a9d08408864075565dcc83957937db2c794627f4344623365aa87d"},"datadog_checks_base/datadog_checks/base/checks/libs/__init__.py":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_base/datadog_checks/base/checks/libs/prometheus.py":{"sha256":"08f897cd26aa17193cd7c36d4c02d1251199ea7a789eeb0a42c7d4bb7212b7dd"},"datadog_checks_base/datadog_checks/base/checks/libs/thread_pool.py":{"sha256":"981219dc63fe452f96075e0fc914bee141179735463179e4bfc93e2c20b8bab7"},"datadog_checks_base/datadog_checks/base/checks/libs/timer.py":{"sha256":"8ac17c602136ed7a5e7a1bb39389782190afc505574dd6cd8a46c1db146780c4"},"datadog_checks_base/datadog_checks/base/checks/libs/vmware/__init__.py":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_base/datadog_checks/base/checks/libs/vmware/all_metrics.py":{"sha256":"4f89b8c40a8abc0f57b6abbea2227be3cd8a0a000e34a134b48800fc4a0842c6"},"datadog_checks_base/datadog_checks/base/checks/libs/vmware/basic_metrics.py":{"sha256":"37d804c9398bb121d2f89162729347394ab2b3b627ad1affb8f608eb34ab35bb"},"datadog_checks_base/datadog_checks/base/checks/logs/__init__.py":{"sha256":"ee840b22269e35c03869d3b7223c20ab5c65895ae23153a8d273c0f866d5b99d"},"datadog_checks_base/datadog_checks/base/checks/logs/crawler/__init__.py":{"sha256":"ee840b22269e35c03869d3b7223c20ab5c65895ae23153a8d273c0f866d5b99d"},"datadog_checks_base/datadog_checks/base/checks/logs/crawler/base.py":{"sha256":"90ae36a4dc349b0d0fc1ac102f3c21b1d0100b55688ce5e0149e3844da37ac8c"},"datadog_checks_base/datadog_checks/base/checks/logs/crawler/stream.py":{"sha256":"300a7c23ecc48f972f4e9ee9349345977d800ddcea359c4682425fc9dadf847e"},"datadog_checks_base/datadog_checks/base/checks/network.py":{"sha256":"52482a9151daa17ec7aa2d16284c7e4ef685885ebedfb57217d0379b66926893"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/__init__.py":{"sha256":"abb57abfe1704169100b5416695cca68f8d931ac4f24725c2ddef50b4b8cedb0"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/__init__.pyi":{"sha256":"02a7053f92c628a67b7d6aa0019007d1f3e9e242c993d36ff4a938e1a736341b"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/base_check.py":{"sha256":"3aa169bf618c48249bd9bd398c66033f52fc9dfcd0e6899d5cbe052fe901ff29"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/mixins.py":{"sha256":"7f08b2b8eea4572ebd387f72b3d71279cf1a44450e1a00758dc056db6cabdf96"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/__init__.py":{"sha256":"6ea1f103b4b1bf22734b22dd35f21238fb492b2175df66c793376b31a29b8e80"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/__init__.pyi":{"sha256":"51083214665a57dea13e0b170dd110f9e2448fd53247c3248abf35515cbcf1ff"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/base.py":{"sha256":"5e2ecadbc7158a8f4834c8f8fedeb49d1c8de8aaf9a8a63fc4a7c7946d1a1efb"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/first_scrape_handler.py":{"sha256":"227fad65733389e49d2f6397265200162efc29b415c2e26718fd2268b1fdf7be"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/labels.py":{"sha256":"43a6d0f977dc2b80c415cca7bc27b4125ebc1fd7768304e2008821e10647271c"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/metrics.py":{"sha256":"b835593871d158c5bc614419058f6308bcde70de43b9e44d8c89b1066d4af369"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/metrics_mapping.py":{"sha256":"05c003dfc33b0087e4f597c9e91f61644df48243d05c19b6b3a618baf6354c3f"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/scraper/__init__.py":{"sha256":"0a63dd8ad50422e51ada17ec6a0d1bf40a17ff0fce4791b061a035931578ddeb"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/scraper/base_scraper.py":{"sha256":"8a330951814a55047690bbceb989ae4daffb5197acd84726e0625933186ae4af"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/scraper/decorators.py":{"sha256":"48e07ee163474457e9a595d76eb4e6fd44be20a0c5f09edef1dd143fadd70067"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transform.py":{"sha256":"a76ecd16a1e54d63022323f7d99aabd517997534e04e7c1e0f805047c6d3e245"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/__init__.py":{"sha256":"6ea1f103b4b1bf22734b22dd35f21238fb492b2175df66c793376b31a29b8e80"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/__init__.pyi":{"sha256":"a3291b1a669b53f2e4a7fb0a0e04ada9079294a69ca061611e3aa82cecbff9a0"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/counter.py":{"sha256":"9a6362e041ad2cd605c566b4c88ff7f0d63d681222e35e0cf6945268635b71a2"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/counter_gauge.py":{"sha256":"a1bd42bc2747afe56b73905295a4f73972f917633a07b3866a15007a4545dc5c"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/gauge.py":{"sha256":"ff6a19d789bfe7f6fb94e47eb4cc49461b1e17aafa7fd0ec3bee0b6c023288f1"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/histogram.py":{"sha256":"c1919379903fdc4f3ee45f5a16ab3c40230958df7de19fb324cbe44d67a7744f"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/metadata.py":{"sha256":"069b093750fd272f78bb12deee4a472f5e042dd961530c939a5e51f3d3003aea"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/rate.py":{"sha256":"7beb75edc142b002a77d7810add521f79c3496c972de2b80d36322cc63ffa1c3"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/service_check.py":{"sha256":"5ba8d9034fe20f75ed7475813967677bd87ab646832932b2e4f0a290b06c4288"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/summary.py":{"sha256":"d01d5693b79ae07da77ddb0e5fca10122a2804636aca914372304f2a31d5b52e"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/temporal_percent.py":{"sha256":"1425d5f6ed5d726168e733be650057049f138141c715b87835e034f21ff6d546"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/time_elapsed.py":{"sha256":"b6a786ad1734ee7d80cf8393981d65ecd2d46415d8d6c04fe5077c7a97d19cda"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/utils.py":{"sha256":"b6993786d240cff2b0091a85b360938da8c790b0acff64db19d069e75e2b58e4"},"datadog_checks_base/datadog_checks/base/checks/prometheus/__init__.py":{"sha256":"abb57abfe1704169100b5416695cca68f8d931ac4f24725c2ddef50b4b8cedb0"},"datadog_checks_base/datadog_checks/base/checks/prometheus/__init__.pyi":{"sha256":"80b7bd92dbd31e79364c9b5920543999175093776ce7ece11f5ee1f062905688"},"datadog_checks_base/datadog_checks/base/checks/prometheus/base_check.py":{"sha256":"d8edeb15002579b295bd35df47ec0b9ad7b6c0ff588296048538612345323e8e"},"datadog_checks_base/datadog_checks/base/checks/prometheus/mixins.py":{"sha256":"f05c27d7d8a435a40859bdc5cb63e023ad7293b9e3b055d5d584fb1d66b3add7"},"datadog_checks_base/datadog_checks/base/checks/prometheus/prometheus_base.py":{"sha256":"26aaf5f0513547e2d420f96e8d8697016dd6fa8029fbf73d8d1f9b42f9a78271"},"datadog_checks_base/datadog_checks/base/checks/win/__init__.py":{"sha256":"abb57abfe1704169100b5416695cca68f8d931ac4f24725c2ddef50b4b8cedb0"},"datadog_checks_base/datadog_checks/base/checks/win/__init__.pyi":{"sha256":"f5cede8b0b33b3ef42bf44bfbfaafbe631ffd8f50b8c64d5a58b79f246f79749"},"datadog_checks_base/datadog_checks/base/checks/win/winpdh.py":{"sha256":"8a1178041d7fdc4a16bc54c2019e1331048e2da5a5bf59d633c000aa5b6105ae"},"datadog_checks_base/datadog_checks/base/checks/win/winpdh_base.py":{"sha256":"cf7a4f1c6d07e62c708de1a2d3c70b7b4d156d9dd731d9ed74986083adb74fb2"},"datadog_checks_base/datadog_checks/base/checks/win/winpdh_stub.py":{"sha256":"3397f2064cc0b842afa19ac6f64b506a9c241ffecaf8a388605e55a52f372cc9"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/__init__.py":{"sha256":"abb57abfe1704169100b5416695cca68f8d931ac4f24725c2ddef50b4b8cedb0"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/__init__.pyi":{"sha256":"da5816fdc0d7dfa9868308c14388dc514903e2920def741f5ef94f3bba0af97f"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/base.py":{"sha256":"c5b63c4b89afaae2399bba356fa6da79aba3e8fc44afd7822a5ba03bfc6c8b52"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/counter_type.py":{"sha256":"efbef65c6b56c8f2577b0caf698ca8c15983cbd0f1678da48bd583e5769bb951"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/sampler.py":{"sha256":"34996400b17ccb59210164687296c7d8ba70c6d41bd85f1fcc18426afbd15f8c"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/types.py":{"sha256":"e04f1ed72a69d8ff9e3b180bb11adfb656aeaaf6a9582b956803e872a0abc158"},"datadog_checks_base/datadog_checks/base/checks/windows/__init__.py":{"sha256":"b2e1a32eb8591a9d541a935aa5c56f20fa7ebbc3de68cf24df3a650198f2712a"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/__init__.py":{"sha256":"c4ced6dabda1b7e2b1fe3d22f03bae7bf94433606ffdbab7be0d04b34009e4a1"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/base.py":{"sha256":"7176d05706f8f7a07e92e1da00cddf1375f7dcb3146caa180b8152489289adb7"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/connection.py":{"sha256":"986ed37527d26645c547a794e18fb8f4ae042c98aa7abe82c3863a17178a1106"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/constants.py":{"sha256":"fdaa806dab5cbbd790bfd36a6d509a43d7394be1e4922504455e68a82dc39799"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/counter.py":{"sha256":"96fd974db904c229f4f8f1dca9a7e42ea45f21f03e251a1b7713d094b8c46465"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transform.py":{"sha256":"6d93f17ed0f0d1dd55157e3dca21486be9da18e62529c320a6fb9e491920133f"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/__init__.py":{"sha256":"a8b142ebeee6817e16846d57125966018eac45ef4a9870efba31fbc9c2555e92"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/count.py":{"sha256":"8263467bddb648fe101243270ff9dcf30edba0a616fa65b69f9fbabe975c9a37"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/gauge.py":{"sha256":"73be1f652e85addc433ba64aa2fa75ee1daf85322691a351d8e2deb35af4d681"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/monotonic_count.py":{"sha256":"479c167c31bd2e471baab21d49ce9dce3470b40729dabe153ee5456aa3a5ce2d"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/rate.py":{"sha256":"3e4c739755cf6cfb68fb942b882a23361e5684c4e3c03710c2a63f8b6310052f"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/service_check.py":{"sha256":"c9d78281e503314ede295fc1c1908d89cb022ce7e8b0d7566a6a0713cc64a707"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/temporal_percent.py":{"sha256":"0d7bb591864394237bcc0da58cfcc6e8fc54ac532d6d34c07a084f0a390316f4"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/time_elapsed.py":{"sha256":"6ed4f3d91fd7a79b1345689f0e8f1b6780906c8c093cc6bacd1f6f38233316df"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/utils.py":{"sha256":"a2ffb8f0936f650e8a3c4671cfa5f42187009776d50059ccd79faf9467eab18d"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/utils_win32pdh_fix.py":{"sha256":"9d64eb01b07d5400ff0da693ad2055d8a0e606f8a9185988d38fb00df9f151af"},"datadog_checks_base/datadog_checks/base/config.py":{"sha256":"a9c000e17f6c5d065177041ef0382219ddbdf34541a7549003477af79b57fed5"},"datadog_checks_base/datadog_checks/base/constants.py":{"sha256":"711d7db40a95cac3056dd056a88199a0720a9359064f2a91b029fd15f1503a7c"},"datadog_checks_base/datadog_checks/base/errors.py":{"sha256":"7cf705691df31e94a4328f1ea6f1779517bd2ab1274bc83827475733f9efcecc"},"datadog_checks_base/datadog_checks/base/log.py":{"sha256":"8127f36229a6834cf70e09a7f0da57bb230d8e05f09936e7d0d732517f01d65b"},"datadog_checks_base/datadog_checks/base/stubs/__init__.py":{"sha256":"c2958047dbfb0624db6e64ceea9569b21a9aff3f8f59a613af7df049364bcf77"},"datadog_checks_base/datadog_checks/base/stubs/_util.py":{"sha256":"6431ad41af05ddc1dff3e42f4951cc0780462370bd5600bbb067061af3b46a92"},"datadog_checks_base/datadog_checks/base/stubs/aggregator.py":{"sha256":"6e9e19e949b031c06921dad4420bd3a8dc0ed20b4d779a209017e6dd8af4fa8a"},"datadog_checks_base/datadog_checks/base/stubs/common.py":{"sha256":"646cc5d9d5f2d6e545406746fdbbf3fe930c8942da05ca73adafe4f70a3d7f4e"},"datadog_checks_base/datadog_checks/base/stubs/datadog_agent.py":{"sha256":"7922fb75cdaaf2efd635aab909d876c9ead59478d480001dddd6b16206464728"},"datadog_checks_base/datadog_checks/base/stubs/log.py":{"sha256":"9d7788e4ec8d2915aeebd9f1cf771e01d86a9e496ab7213897acbc34f7bfa74f"},"datadog_checks_base/datadog_checks/base/stubs/similar.py":{"sha256":"dc73bd86dc7d2d5ea945a1356462ac3c4c5abd36e33c73cae9930cd813d88f76"},"datadog_checks_base/datadog_checks/base/stubs/tagging.py":{"sha256":"cf12dd3c2e04a87c46892fc71216da3ac2ffb399d922137c043931d810133aab"},"datadog_checks_base/datadog_checks/base/types.py":{"sha256":"6a76a3652d16d13b31507250c3e24738fd8d49eb82f418ac5d2cbd9804ad9714"},"datadog_checks_base/datadog_checks/base/utils/__init__.py":{"sha256":"4c2d2aee209b36a7188df5396b304da429e2f0b01060e7d8e8500313749910f0"},"datadog_checks_base/datadog_checks/base/utils/_http_utils.py":{"sha256":"c3cc21cf27261b354a94252fef4deb820daa3001744f7779d6307cbb9602e649"},"datadog_checks_base/datadog_checks/base/utils/agent/__init__.py":{"sha256":"a37696bf2dcf872903fe1ed84f7b3adbc3b45b66291e2b3436542c495d4f234e"},"datadog_checks_base/datadog_checks/base/utils/agent/common.py":{"sha256":"d5746c3c959da666f100a2815471813d49b858776f8aad28bee820b69c7b2d6a"},"datadog_checks_base/datadog_checks/base/utils/agent/debug.py":{"sha256":"cde05b34bb7763f5b1a5ff4e74092595d2f2d6098bd14e9b30398e1d20c63373"},"datadog_checks_base/datadog_checks/base/utils/agent/memory.py":{"sha256":"f6f35a21914859b753fdaecbef19e77f12f3246052579e5834b0c64dd4d1ef25"},"datadog_checks_base/datadog_checks/base/utils/agent/packages.py":{"sha256":"9a9924ab4d6c8b3cf3fb431d6ddfedfdd78c6a41c05f5a22675ad21460fe96e1"},"datadog_checks_base/datadog_checks/base/utils/agent/utils.py":{"sha256":"155fe8eab71c53907432b5f299afb8c80aa62a08649734de39fd6785872663ba"},"datadog_checks_base/datadog_checks/base/utils/aws.py":{"sha256":"c3114b5a5545b6fe7f11445db17cc384e45c4e93348c1940a2470c88f575c43f"},"datadog_checks_base/datadog_checks/base/utils/common.py":{"sha256":"3ad98a77914a8e5c09c116e113868898e0563ceccd3d5a9f5d79875e4e0c308c"},"datadog_checks_base/datadog_checks/base/utils/concurrency/__init__.py":{"sha256":"391b2c1396d766e62e6b95022deb067cfbdcad029c0031da0ec5eb5327c0445d"},"datadog_checks_base/datadog_checks/base/utils/concurrency/limiter.py":{"sha256":"8acd99a541237ec2389c11ad5c6d83d1982fd060f7f3f8b98c940291dccf5bf6"},"datadog_checks_base/datadog_checks/base/utils/constants.py":{"sha256":"4304decb8096074340c66dab703fb03d84641328257a4408ac0cc531a6c46b7f"},"datadog_checks_base/datadog_checks/base/utils/containers.py":{"sha256":"4ba73d92f98326e88787d84eeb63db76aae7866e9ed91dcee60187de5e63b4da"},"datadog_checks_base/datadog_checks/base/utils/cron.py":{"sha256":"ea1e1c38de175498bc2f38d6bb1d9f8524a6c4f6d63f165af2463aec81fb655a"},"datadog_checks_base/datadog_checks/base/utils/date.py":{"sha256":"2499aa3fce0281570527472f02632ef04b4ceaff7ab48112b9c40d9bd78a7847"},"datadog_checks_base/datadog_checks/base/utils/db/__init__.py":{"sha256":"1154dcd85b671d62c75c8dccefd8f2327f72a5900c6bd7aa1b710a2c088c17e3"},"datadog_checks_base/datadog_checks/base/utils/db/__init__.pyi":{"sha256":"7b0986c71c89e76c00698c4d65a862da4a0452775d7ef1dc9f71d8c50dd152bd"},"datadog_checks_base/datadog_checks/base/utils/db/core.py":{"sha256":"20d7e8375b852bd5debf6cbde94eba7374fc1e54ad501e07115ae763e44c9ad7"},"datadog_checks_base/datadog_checks/base/utils/db/health.py":{"sha256":"ae225a2489ceb9814adf2d30347d7d1e88c89173f041a32dbf1bb23c24719d96"},"datadog_checks_base/datadog_checks/base/utils/db/query.py":{"sha256":"83aaa8962c3aa34b3794db2f3e2bc392db19beb61209d85d2121771f254a3ef5"},"datadog_checks_base/datadog_checks/base/utils/db/schemas.py":{"sha256":"3df1d178300d3774d764f284292fb287ddb44e831a5471198197a64124bb5773"},"datadog_checks_base/datadog_checks/base/utils/db/sql.py":{"sha256":"a2213341afef0bfc3753ae5516b142a101d68f91902cb46548ed027e24a5a780"},"datadog_checks_base/datadog_checks/base/utils/db/sql_commenter.py":{"sha256":"aff79f2ba4c6450c4cffe423fa774425d102938ec9e270858e4572c6ed579af5"},"datadog_checks_base/datadog_checks/base/utils/db/statement_metrics.py":{"sha256":"b13def2f8c1900853652b0e73727635867f6f1270106e8e1d42c6d8333db127c"},"datadog_checks_base/datadog_checks/base/utils/db/timed_cache.py":{"sha256":"6bd2ace4a294bc4c41e863804d74d208b6a656d2c3f75f439fa1e9c1e18ab45c"},"datadog_checks_base/datadog_checks/base/utils/db/transform.py":{"sha256":"0bf58eac79fc74313171969d5af9311b9a3cba4203c306009937870df7ceb017"},"datadog_checks_base/datadog_checks/base/utils/db/types.py":{"sha256":"38b5f63aae7c2503c5043e28a94a422e400fee8bd118dfe2d6f164d44d0df0b8"},"datadog_checks_base/datadog_checks/base/utils/db/utils.py":{"sha256":"3046c5cf38ad77dfa7c205596d40cdc4ce7cdb3c94f686065edd59bf1eba6bac"},"datadog_checks_base/datadog_checks/base/utils/diagnose.py":{"sha256":"78b31ed2d212a64cd2df2c5547cdc81f1a2b4097c74ff5e2e82ab8cf344dc552"},"datadog_checks_base/datadog_checks/base/utils/discovery/__init__.py":{"sha256":"bcf08e76c4e105c06314944f8439ba22c6463b093c1e5bdc8b009efe5f1d28b9"},"datadog_checks_base/datadog_checks/base/utils/discovery/__init__.pyi":{"sha256":"49c54b5353638fd7a46667b096d6f47142c8e81ca5b2c5477e7e0270f35ecabf"},"datadog_checks_base/datadog_checks/base/utils/discovery/cache.py":{"sha256":"7fd2f703b619a59fa6a59a452308ec6b969bf5c64c1a4a9d7ad76bf44a5a95b2"},"datadog_checks_base/datadog_checks/base/utils/discovery/discovery.py":{"sha256":"9bcc3d55162eefc79dd202af56ee1c84dad1752302aae24edd85359b378e734d"},"datadog_checks_base/datadog_checks/base/utils/discovery/filter.py":{"sha256":"459f13ddb2cfe2e84af0a5f01aa76860c254f4edc402f3924e119ae702d0311f"},"datadog_checks_base/datadog_checks/base/utils/fips.py":{"sha256":"bf19b72bbc1340a61e9cfd4b6d793ba6627c580ea5dfaec14c918134ed0392f4"},"datadog_checks_base/datadog_checks/base/utils/format/__init__.py":{"sha256":"315b8b9d1858f958ca223629dc539346f2273b8a942c538d581091c9ac353b00"},"datadog_checks_base/datadog_checks/base/utils/format/_json.py":{"sha256":"09ae88905257e012aeaa1140946596b1e1e605213101cba78946895159f0c302"},"datadog_checks_base/datadog_checks/base/utils/format/json.py":{"sha256":"1b2f3873d974ccecbbdf5a820e2cb6d47a616620b7c36c12e8e45aebae0c1d9d"},"datadog_checks_base/datadog_checks/base/utils/functions.py":{"sha256":"8869726f147a68f3c494dc4d6f610b3b36e4df6f23f4e541031ade749c5d091c"},"datadog_checks_base/datadog_checks/base/utils/hashing.py":{"sha256":"74d01edd152f77b4c4dd699c0d7e9261085368c5ecc710c7b9ee1f3e416e2f94"},"datadog_checks_base/datadog_checks/base/utils/headers.py":{"sha256":"d1249d0bbd63c1a07ad413837eeb1a84256bd5ce7a1af4fd8b0b7b72275c1cfd"},"datadog_checks_base/datadog_checks/base/utils/http.py":{"sha256":"78f4b32fbc7fc6c6f57675c9c94d9f057220394d29e541592291b6017fe36590"},"datadog_checks_base/datadog_checks/base/utils/limiter.py":{"sha256":"6114eb3c25f54b912d1cb55c3fff8611fcd1a2db3f2d3732d5ffee1d956cf748"},"datadog_checks_base/datadog_checks/base/utils/metadata/__init__.py":{"sha256":"1154dcd85b671d62c75c8dccefd8f2327f72a5900c6bd7aa1b710a2c088c17e3"},"datadog_checks_base/datadog_checks/base/utils/metadata/__init__.pyi":{"sha256":"595a2fd3b68f28477275ccbc7b902177d08c4ff0dc43188eb42aa31b1d6449fe"},"datadog_checks_base/datadog_checks/base/utils/metadata/constants.py":{"sha256":"5c77cfc2f40c6f2344d8562607fed7c968862343761b17415dbb572f87839e27"},"datadog_checks_base/datadog_checks/base/utils/metadata/core.py":{"sha256":"eeb20aadfc3594d02870ef4705dd8cebf83e70a10fdaf99838e3cee8e926b939"},"datadog_checks_base/datadog_checks/base/utils/metadata/utils.py":{"sha256":"d3756946a79fa280add151008bd06fa25643de6dfeba14f6af642e276c5ce03e"},"datadog_checks_base/datadog_checks/base/utils/metadata/version.py":{"sha256":"ad0ebf687a6b0387530a47943306dd04dbf048e969385efadf6b16dbae2c75bb"},"datadog_checks_base/datadog_checks/base/utils/models/__init__.py":{"sha256":"b2e1a32eb8591a9d541a935aa5c56f20fa7ebbc3de68cf24df3a650198f2712a"},"datadog_checks_base/datadog_checks/base/utils/models/types.py":{"sha256":"c9b504a7dcffac396bdbea089158c4581fa6440bd4c28103a4051c6504c4208c"},"datadog_checks_base/datadog_checks/base/utils/models/validation/__init__.py":{"sha256":"c2730cf9d93ee0f59e226c39111fdb64ab6cf5c3f8111ec8523d679493143793"},"datadog_checks_base/datadog_checks/base/utils/models/validation/core.py":{"sha256":"e58a070f63eaceeaf03c6d4405758c81737dd7d569f3b358001e004dd440fcff"},"datadog_checks_base/datadog_checks/base/utils/models/validation/security.py":{"sha256":"d0c0f2c42bb92ecccb6521d5782fe2ae178fb9eec59b6fccc34db0de57dc5b7c"},"datadog_checks_base/datadog_checks/base/utils/models/validation/utils.py":{"sha256":"24be22141ff0da08f870aca800b92e11a2218195a36434016cc982e14e1fafa5"},"datadog_checks_base/datadog_checks/base/utils/persistent_cache.py":{"sha256":"d539347645991fcc87e08fdb319827861cf68dc65c232bbce5d36906fcb996c3"},"datadog_checks_base/datadog_checks/base/utils/platform.py":{"sha256":"c16f1fe972a8e091f1beed6c3740e92c39988d2fdc0aef06a0abdf4e3223e323"},"datadog_checks_base/datadog_checks/base/utils/prometheus/__init__.py":{"sha256":"a4d2d7db491726bb500c88450fa8e79c8135f2f175f4c7402809b7e1a3a583bc"},"datadog_checks_base/datadog_checks/base/utils/prometheus/__init__.pyi":{"sha256":"e774ac8fb7cffb2caf624f3990e79b517e487be6e61e31fe6d52989fd5f8ed67"},"datadog_checks_base/datadog_checks/base/utils/prometheus/functions.py":{"sha256":"c674f283d8937acffcde65a57351acf05150d6349163e94b3e8e530801626f2b"},"datadog_checks_base/datadog_checks/base/utils/prometheus/metrics_pb2.py":{"sha256":"8bfee9b8006b7cde3209393ebe13b0dc617fff94386a20f12b25efb5069df6ca"},"datadog_checks_base/datadog_checks/base/utils/replay/__init__.py":{"sha256":"391b2c1396d766e62e6b95022deb067cfbdcad029c0031da0ec5eb5327c0445d"},"datadog_checks_base/datadog_checks/base/utils/replay/constants.py":{"sha256":"7b10c6b0380b23bbb5196bde7a55dd8335894e3c47a18266413ee8ef0d4509e3"},"datadog_checks_base/datadog_checks/base/utils/replay/execute.py":{"sha256":"bcbec84fbff28e18eda93b4bc4a8944571480ba4997db388fb9a6acc9c0d202b"},"datadog_checks_base/datadog_checks/base/utils/replay/redirect.py":{"sha256":"44b93f734216035c3ec66afa750c16eca185909b750740e6417e55591b48a559"},"datadog_checks_base/datadog_checks/base/utils/secrets.py":{"sha256":"4e3e4c04ea321975c3581dc7afeed4283cb9195d4d6499053d8e13e2ff4f1c78"},"datadog_checks_base/datadog_checks/base/utils/serialization.py":{"sha256":"a5c454cd92146643ac7e718319bc5e530197ad2b0597ff6b2e10347a40ff019f"},"datadog_checks_base/datadog_checks/base/utils/subprocess_output.py":{"sha256":"0dbab19fc163a3b7f78e5fbc1363b0ddc564462eab3681f9e3bfe27ccb0ba95c"},"datadog_checks_base/datadog_checks/base/utils/tagging.py":{"sha256":"6bed3fa5718ec20e1ec260e22689fbaccffde9926f5691d5330872d49e51ac42"},"datadog_checks_base/datadog_checks/base/utils/tailfile.py":{"sha256":"419987f1e0b17829455913199facc3c203b1d72e5d017739c88feecc40a3d1a9"},"datadog_checks_base/datadog_checks/base/utils/time.py":{"sha256":"70dcbb0adb09cd250c8bb27edd645e65552f37260e1a427022da89318d35aaa0"},"datadog_checks_base/datadog_checks/base/utils/timeout.py":{"sha256":"78e059a1f14dfa13aee7125e30e17769cfe87dccbd118ebe92f981bcfe101058"},"datadog_checks_base/datadog_checks/base/utils/tls.py":{"sha256":"b68ff7dcc692123be8eb3bea466f60291c7f664f40caae77b67662b8abcdcb6e"},"datadog_checks_base/datadog_checks/base/utils/tracing.py":{"sha256":"d9066340a34abe8c11605a6a390738b14a18516bba249289a1f93eaefb2d5206"},"datadog_checks_base/datadog_checks/base/utils/tracking.py":{"sha256":"158228baabb7281f89b31831335897e48a6ffdc5a1b3ccd03933784b15ce909e"},"datadog_checks_base/datadog_checks/checks/__init__.py":{"sha256":"76381faa72acfce6863031501a53b955d2d047150023e5f828424b2e53e95483"},"datadog_checks_base/datadog_checks/checks/base.py":{"sha256":"df061b86e80d0375a5aedffe104a4198949297c9472ae52dad13fe9d5d8a05f4"},"datadog_checks_base/datadog_checks/checks/libs/__init__.py":{"sha256":"2300c3103843a8f3d4d63e0fcaf78691dbb508cbfd91b7de2bdd0802f981c777"},"datadog_checks_base/datadog_checks/checks/libs/thread_pool.py":{"sha256":"747147080f5d03c2742e233e4bd635d4c58abff8cf5c803fe5881f776c1603b4"},"datadog_checks_base/datadog_checks/checks/libs/timer.py":{"sha256":"a35b1970916e9035ae71d185b6506bbd2b798e26ef1b7b91fc3b30788b19dd49"},"datadog_checks_base/datadog_checks/checks/libs/vmware/__init__.py":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_base/datadog_checks/checks/libs/vmware/all_metrics.py":{"sha256":"849ca20bfd3b86aa8c8eeb88732b4026fd8a0e74a0a96ab6cbe269270b71a8c3"},"datadog_checks_base/datadog_checks/checks/libs/vmware/basic_metrics.py":{"sha256":"683af414d39b8d77d66fd97146999de4bd7a7be9ab934ed9224867a0b74c099f"},"datadog_checks_base/datadog_checks/checks/libs/wmi/__init__.py":{"sha256":"2300c3103843a8f3d4d63e0fcaf78691dbb508cbfd91b7de2bdd0802f981c777"},"datadog_checks_base/datadog_checks/checks/libs/wmi/sampler.py":{"sha256":"e3c981d33289c55ada249abeb51b1c5095c06cb11b9991f9a4228a695251e455"},"datadog_checks_base/datadog_checks/checks/network.py":{"sha256":"e5b7d11f19ac5286897259c2ac1e8209ee7bee94df199d5155e1b174cce6afbc"},"datadog_checks_base/datadog_checks/checks/network_checks.py":{"sha256":"cdb77741ebeaa7b6a13616873b5725009b7566a77ceef013fe5dd1c76cbdd81b"},"datadog_checks_base/datadog_checks/checks/openmetrics/__init__.py":{"sha256":"96b910b1c359a0b37a0a8753b6e1e50c803ae35bf4f1e7a31418678cf16792c0"},"datadog_checks_base/datadog_checks/checks/openmetrics/base_check.py":{"sha256":"a9ccd2133baa1058f744e494e2bb43cb5221fbbb41b6c3b8a0553ead7f6a851f"},"datadog_checks_base/datadog_checks/checks/openmetrics/mixins.py":{"sha256":"b5b9cf9d77c8dda6d752a4d37d303405fa1935ac071b17a4e8b055160b7d2a28"},"datadog_checks_base/datadog_checks/checks/prometheus/__init__.py":{"sha256":"a12ac852908b6eb9f3b594e893c41a38951a9a1e030b6286c20e76aec9965c8b"},"datadog_checks_base/datadog_checks/checks/prometheus/base_check.py":{"sha256":"882984f28171bfde4a2c34c25f609b5a758917f0c9b9e00b2ba9a0d489ba1e19"},"datadog_checks_base/datadog_checks/checks/prometheus/mixins.py":{"sha256":"aa652ec3963f90c1e7c552d35243d3863f737fa9de5e45131ca55758c5e00de5"},"datadog_checks_base/datadog_checks/checks/prometheus/prometheus_base.py":{"sha256":"434576db21c019a7366f5350b8e305c0790509aadd9cbd980f6c3ac22b87874f"},"datadog_checks_base/datadog_checks/checks/prometheus_check/__init__.py":{"sha256":"9b5434e894e03018e342ee726f635de62122bf0e1d8f59d3f0109f89a95d890d"},"datadog_checks_base/datadog_checks/checks/win/__init__.py":{"sha256":"4441d475ac7181f8e7edf1037da1310d776c647883d0362a5acfb88e44e4d45e"},"datadog_checks_base/datadog_checks/checks/win/winpdh.py":{"sha256":"864f9f437a351bb82a2962e15a1198cc6271f9cc25c3c73522402954fa42ef9e"},"datadog_checks_base/datadog_checks/checks/win/winpdh_base.py":{"sha256":"269e7c39a6562687aa6ad022b1b88c85b5f6be403c11a8412775b3c55715196e"},"datadog_checks_base/datadog_checks/checks/win/winpdh_stub.py":{"sha256":"a1895061a3be05415b331c1b17d2c02b1f912f36ed238948c46d7af68025d7ed"},"datadog_checks_base/datadog_checks/checks/win/wmi/__init__.py":{"sha256":"51008a1bf148ec1c7bc0bb8f6ad3be19ba950e6c13b5cb84a2fd2684fb66327e"},"datadog_checks_base/datadog_checks/checks/win/wmi/counter_type.py":{"sha256":"01ac5dc9d1518c74c4b621a1da0b901da5ffc954abcf81972f8e478abdb098a7"},"datadog_checks_base/datadog_checks/checks/win/wmi/sampler.py":{"sha256":"bbfeea3683c40059f5e1ff52fc459e82200727041a187328d65f58b92b445cdd"},"datadog_checks_base/datadog_checks/checks/winwmi_check.py":{"sha256":"907ea75f4055e675b732171687ce6148d6484d067b36726b942b4e9c5e1d747b"},"datadog_checks_base/datadog_checks/config.py":{"sha256":"3eb01719d94b9e857654c41f7ff9e849a489274c20e010221a7c3b8c240b4a29"},"datadog_checks_base/datadog_checks/errors.py":{"sha256":"785c269eb5fe6dab4881bbbe889cac7aa00f34eff8ae4d54b9a28af3d7af2e18"},"datadog_checks_base/datadog_checks/log.py":{"sha256":"a2bbce80c286344b2a4932da942010a563fea2ea2ba46d40ec69fe8f69910fcd"},"datadog_checks_base/datadog_checks/py.typed":{"sha256":"95aebb28195b8d737effe0df18d71d39c8d8ba6569286fd3930fbc9f9767181e"},"datadog_checks_base/datadog_checks/stubs/__init__.py":{"sha256":"331c49e4d1a353ded64777893a96906746f386f03cf32b30135aa260665377ec"},"datadog_checks_base/datadog_checks/stubs/_util.py":{"sha256":"9989e9f7fbeca50c1359c06188f60c309dc421c40f4a9a407147d18c42c180b5"},"datadog_checks_base/datadog_checks/stubs/aggregator.py":{"sha256":"ea230225c9c41fbb1885a38741cccf1809034d9b1fd696eb6efde1de6bfba762"},"datadog_checks_base/datadog_checks/stubs/datadog_agent.py":{"sha256":"b167bb8f650441e0f3762aa3e0ffe73e1921157f34ff90abe47723db963ec6bf"},"datadog_checks_base/datadog_checks/utils/__init__.py":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_base/datadog_checks/utils/common.py":{"sha256":"470a0220a572f2f6df6b61353fb63b82447d569274d15b6e3f5f0c12b5e7f6b9"},"datadog_checks_base/datadog_checks/utils/containers.py":{"sha256":"ca56286c527f7d5f940b0baf5a66a4eba6ad2df036759f6000b0985835c63a29"},"datadog_checks_base/datadog_checks/utils/headers.py":{"sha256":"8f92abe525d4947ba4dd41870d0367f4cda884df95e57d9fce62718f0e8fe8da"},"datadog_checks_base/datadog_checks/utils/limiter.py":{"sha256":"1aad3f848119c3aaa92394962ffbb331a22991bcef173b242347a54cffef22c1"},"datadog_checks_base/datadog_checks/utils/platform.py":{"sha256":"76ca8472c0bf63b866e28aea3bc449e4de63905a41ee9c8662f09e5eb6fef571"},"datadog_checks_base/datadog_checks/utils/prometheus/__init__.py":{"sha256":"f16c179ccf60d6c7d2e76ebb4180895ff85df0c665e6446006043f4b374d757b"},"datadog_checks_base/datadog_checks/utils/prometheus/functions.py":{"sha256":"e2f5ac4c62e0ba31f0758668d2d940424a833c7a1fa9424cde4f5e22d26a1114"},"datadog_checks_base/datadog_checks/utils/prometheus/metrics_pb2.py":{"sha256":"c60dd47541dee138de478b35dcb50a6765355954ade94eb38ec5511ba957e9d7"},"datadog_checks_base/datadog_checks/utils/proxy.py":{"sha256":"723edeaf00a1ee813aa4a6467fc34c3ae419f354c6b6172de678e39b864a8bd7"},"datadog_checks_base/datadog_checks/utils/subprocess_output.py":{"sha256":"80dea34445564d9eee264533455310e69c72b4d640e369ea8c97a365717a64c2"},"datadog_checks_base/datadog_checks/utils/tailfile.py":{"sha256":"6c4aa2725fac2e0cb0f660f545d5a8b3c1954a50a49f1e58c86ddf5cc068c137"},"datadog_checks_base/datadog_checks/utils/timeout.py":{"sha256":"42e848b0a6686bf335dfe8040b07acbb9219c12317cfdf564f0a9a974262c913"},"datadog_checks_base/datadog_checks/utils/tracing.py":{"sha256":"1d06d06a428cf8bc3be4c0e422d6982588a94ba60edb867fca60d5c43b31e435"},"datadog_checks_base/pyproject.toml":{"sha256":"7d91f3690101c2689f0ee417378ae4d7fd322d97ccc38e58784a667286cbc9dc"}}}} \ No newline at end of file +{"signatures":[{"keyid":"4e75cfa1b0b5240a7448b136975c1e0adf56b392","other_headers":"04000108001d1621044e75cfa1b0b5240a7448b136975c1e0adf56b39205026a199e26","signature":"71c3645465f0d3919ddf42a678a7ba8c1e3d9370956bae059f6e53a6f8ebcd7faa7bf4128ba00e18be3ddf542eae2d67bc672ae0b806acbf66e6563902f4f66fb8299620a9700149015484a939767b6cf2bd46a1a88d31b26618dcd2e2f5ad3c4933c2685cb703f069329264b952d8f952267c15211fffff775a8c7f9a700ed9f2effba3e6b5482ae1a2dde44baf63c8e712c75146118abc5cecaa3e8212edbc3220ac6182f12282f5550c6bea93f5725fe7aab3f529a2baaed7184f74ee5b5387595d1196f853b61b428dbae55cdc35e874e2223a34bda4bd28a007459630ad6fc08a42da5e919f3fa3296e8762e094692bafc8e4586ce7b3ddb6a36f5078fb6a10cf0235648092be14b890414f718b1c18bbf98446b81d88dc0960dbd66ea3843cd37c8b3dfa022c0e529ce03f915566a2219b73f85dcabcf99be4124274547ea3a8759ede0786760228c1dcf683ae7aac8e6bfe85541c56959d3b57d3c260ff77ce71c9106ae7171bf0721a0330d24af76d758196e80319969ac1d0e7b20baa765e58e267995b558b8905f5997018bd3ba62ff66ba15486fa247dfc8a255b4ea1b09a8791f795ba86b8793f4033970b6ddc2bf6f0139076e0d3786f157ae6c3774ca08f2d814d52037bb21c1f7f69c4f1161d55f71880d7c35403827abb735b26481fb81a955b1dfe3088f92448c8a0ec77fec1e53f68f3784d7dda9c75ec"}],"signed":{"_type":"link","byproducts":{},"command":[],"environment":{},"materials":{},"name":"tag","products":{"datadog_checks_base/datadog_checks/__init__.py":{"sha256":"9a3c64b8b00c94da4b4f34618d803d3255808caf21b8afa9195c84b61da66b6a"},"datadog_checks_base/datadog_checks/base/__about__.py":{"sha256":"333c4ee10a92c7d093abebd1c9a105be6d23510212dfd3bf5570579a9099e860"},"datadog_checks_base/datadog_checks/base/__init__.py":{"sha256":"c967a048b13e4d9588192bc08898fd3d2ad4c7394ea3f51524bb76cce459f049"},"datadog_checks_base/datadog_checks/base/__init__.pyi":{"sha256":"6b863524870f27ca73f6d464040be359db6f490c19c5b31906e4662224acff81"},"datadog_checks_base/datadog_checks/base/agent.py":{"sha256":"9d7f71fc16188b344a18d61f5eae73ed2d0567dc5c5ffc1ddadbb1a467b7ffc9"},"datadog_checks_base/datadog_checks/base/checks/__init__.py":{"sha256":"abb57abfe1704169100b5416695cca68f8d931ac4f24725c2ddef50b4b8cedb0"},"datadog_checks_base/datadog_checks/base/checks/__init__.pyi":{"sha256":"c9d7ad97a904142482869a58421b3c9af20fe65eaf9d90f901b2c004685b15c3"},"datadog_checks_base/datadog_checks/base/checks/_config_ast.py":{"sha256":"bf5ac087039117cd1bde47d92a17facd767b4b90f703640f50ae2d4a8f1ea3e6"},"datadog_checks_base/datadog_checks/base/checks/base.py":{"sha256":"83997b4537c377246e8ea3f5945a539d521d0fceb90bf3c2886fa052f79774af"},"datadog_checks_base/datadog_checks/base/checks/db.py":{"sha256":"f41784c2e0c9e530d796aeb2257615b3d4ff5256c26b76d6ad23aae59b210ca7"},"datadog_checks_base/datadog_checks/base/checks/kube_leader/__init__.py":{"sha256":"abb57abfe1704169100b5416695cca68f8d931ac4f24725c2ddef50b4b8cedb0"},"datadog_checks_base/datadog_checks/base/checks/kube_leader/__init__.pyi":{"sha256":"5060f2c28470982233dd98a2d6e1eca7b8e2146591767e5f14c659c60186950b"},"datadog_checks_base/datadog_checks/base/checks/kube_leader/base_check.py":{"sha256":"c7cc1a3febf3b49ccaf5ee8a40b1922c57eb59dcf029cb161b308bd5bb3a5917"},"datadog_checks_base/datadog_checks/base/checks/kube_leader/mixins.py":{"sha256":"bc95058738b055dbd572dd16bc228593aa0cdc76239d336dc31092205bcec87f"},"datadog_checks_base/datadog_checks/base/checks/kube_leader/record.py":{"sha256":"6aa334545b055aeda90343b976cfbabf959038cee58103321b0a26e90eaa09a5"},"datadog_checks_base/datadog_checks/base/checks/kubelet_base/__init__.py":{"sha256":"d70624d464bcea37efdfefd4cb8cdb26fb8e0183eecbdcb8f450f4288455950c"},"datadog_checks_base/datadog_checks/base/checks/kubelet_base/__init__.pyi":{"sha256":"0bec4967ccee71b1bbc80c2db3b27e4819de7ac1be4cf80bd5b06b166e0bf2f7"},"datadog_checks_base/datadog_checks/base/checks/kubelet_base/base.py":{"sha256":"e48a29c2d9a9d08408864075565dcc83957937db2c794627f4344623365aa87d"},"datadog_checks_base/datadog_checks/base/checks/libs/__init__.py":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_base/datadog_checks/base/checks/libs/prometheus.py":{"sha256":"08f897cd26aa17193cd7c36d4c02d1251199ea7a789eeb0a42c7d4bb7212b7dd"},"datadog_checks_base/datadog_checks/base/checks/libs/thread_pool.py":{"sha256":"981219dc63fe452f96075e0fc914bee141179735463179e4bfc93e2c20b8bab7"},"datadog_checks_base/datadog_checks/base/checks/libs/timer.py":{"sha256":"8ac17c602136ed7a5e7a1bb39389782190afc505574dd6cd8a46c1db146780c4"},"datadog_checks_base/datadog_checks/base/checks/libs/vmware/__init__.py":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_base/datadog_checks/base/checks/libs/vmware/all_metrics.py":{"sha256":"4f89b8c40a8abc0f57b6abbea2227be3cd8a0a000e34a134b48800fc4a0842c6"},"datadog_checks_base/datadog_checks/base/checks/libs/vmware/basic_metrics.py":{"sha256":"37d804c9398bb121d2f89162729347394ab2b3b627ad1affb8f608eb34ab35bb"},"datadog_checks_base/datadog_checks/base/checks/logs/__init__.py":{"sha256":"ee840b22269e35c03869d3b7223c20ab5c65895ae23153a8d273c0f866d5b99d"},"datadog_checks_base/datadog_checks/base/checks/logs/crawler/__init__.py":{"sha256":"ee840b22269e35c03869d3b7223c20ab5c65895ae23153a8d273c0f866d5b99d"},"datadog_checks_base/datadog_checks/base/checks/logs/crawler/base.py":{"sha256":"90ae36a4dc349b0d0fc1ac102f3c21b1d0100b55688ce5e0149e3844da37ac8c"},"datadog_checks_base/datadog_checks/base/checks/logs/crawler/stream.py":{"sha256":"300a7c23ecc48f972f4e9ee9349345977d800ddcea359c4682425fc9dadf847e"},"datadog_checks_base/datadog_checks/base/checks/network.py":{"sha256":"52482a9151daa17ec7aa2d16284c7e4ef685885ebedfb57217d0379b66926893"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/__init__.py":{"sha256":"abb57abfe1704169100b5416695cca68f8d931ac4f24725c2ddef50b4b8cedb0"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/__init__.pyi":{"sha256":"02a7053f92c628a67b7d6aa0019007d1f3e9e242c993d36ff4a938e1a736341b"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/base_check.py":{"sha256":"3aa169bf618c48249bd9bd398c66033f52fc9dfcd0e6899d5cbe052fe901ff29"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/mixins.py":{"sha256":"7f08b2b8eea4572ebd387f72b3d71279cf1a44450e1a00758dc056db6cabdf96"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/__init__.py":{"sha256":"6ea1f103b4b1bf22734b22dd35f21238fb492b2175df66c793376b31a29b8e80"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/__init__.pyi":{"sha256":"51083214665a57dea13e0b170dd110f9e2448fd53247c3248abf35515cbcf1ff"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/base.py":{"sha256":"5e2ecadbc7158a8f4834c8f8fedeb49d1c8de8aaf9a8a63fc4a7c7946d1a1efb"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/first_scrape_handler.py":{"sha256":"227fad65733389e49d2f6397265200162efc29b415c2e26718fd2268b1fdf7be"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/labels.py":{"sha256":"43a6d0f977dc2b80c415cca7bc27b4125ebc1fd7768304e2008821e10647271c"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/metrics.py":{"sha256":"b835593871d158c5bc614419058f6308bcde70de43b9e44d8c89b1066d4af369"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/metrics_mapping.py":{"sha256":"05c003dfc33b0087e4f597c9e91f61644df48243d05c19b6b3a618baf6354c3f"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/scraper/__init__.py":{"sha256":"0a63dd8ad50422e51ada17ec6a0d1bf40a17ff0fce4791b061a035931578ddeb"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/scraper/base_scraper.py":{"sha256":"8a330951814a55047690bbceb989ae4daffb5197acd84726e0625933186ae4af"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/scraper/decorators.py":{"sha256":"48e07ee163474457e9a595d76eb4e6fd44be20a0c5f09edef1dd143fadd70067"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transform.py":{"sha256":"a76ecd16a1e54d63022323f7d99aabd517997534e04e7c1e0f805047c6d3e245"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/__init__.py":{"sha256":"6ea1f103b4b1bf22734b22dd35f21238fb492b2175df66c793376b31a29b8e80"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/__init__.pyi":{"sha256":"a3291b1a669b53f2e4a7fb0a0e04ada9079294a69ca061611e3aa82cecbff9a0"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/counter.py":{"sha256":"9a6362e041ad2cd605c566b4c88ff7f0d63d681222e35e0cf6945268635b71a2"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/counter_gauge.py":{"sha256":"a1bd42bc2747afe56b73905295a4f73972f917633a07b3866a15007a4545dc5c"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/gauge.py":{"sha256":"ff6a19d789bfe7f6fb94e47eb4cc49461b1e17aafa7fd0ec3bee0b6c023288f1"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/histogram.py":{"sha256":"c1919379903fdc4f3ee45f5a16ab3c40230958df7de19fb324cbe44d67a7744f"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/metadata.py":{"sha256":"069b093750fd272f78bb12deee4a472f5e042dd961530c939a5e51f3d3003aea"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/rate.py":{"sha256":"7beb75edc142b002a77d7810add521f79c3496c972de2b80d36322cc63ffa1c3"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/service_check.py":{"sha256":"5ba8d9034fe20f75ed7475813967677bd87ab646832932b2e4f0a290b06c4288"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/summary.py":{"sha256":"d01d5693b79ae07da77ddb0e5fca10122a2804636aca914372304f2a31d5b52e"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/temporal_percent.py":{"sha256":"1425d5f6ed5d726168e733be650057049f138141c715b87835e034f21ff6d546"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/transformers/time_elapsed.py":{"sha256":"b6a786ad1734ee7d80cf8393981d65ecd2d46415d8d6c04fe5077c7a97d19cda"},"datadog_checks_base/datadog_checks/base/checks/openmetrics/v2/utils.py":{"sha256":"b6993786d240cff2b0091a85b360938da8c790b0acff64db19d069e75e2b58e4"},"datadog_checks_base/datadog_checks/base/checks/prometheus/__init__.py":{"sha256":"abb57abfe1704169100b5416695cca68f8d931ac4f24725c2ddef50b4b8cedb0"},"datadog_checks_base/datadog_checks/base/checks/prometheus/__init__.pyi":{"sha256":"80b7bd92dbd31e79364c9b5920543999175093776ce7ece11f5ee1f062905688"},"datadog_checks_base/datadog_checks/base/checks/prometheus/base_check.py":{"sha256":"d8edeb15002579b295bd35df47ec0b9ad7b6c0ff588296048538612345323e8e"},"datadog_checks_base/datadog_checks/base/checks/prometheus/mixins.py":{"sha256":"f05c27d7d8a435a40859bdc5cb63e023ad7293b9e3b055d5d584fb1d66b3add7"},"datadog_checks_base/datadog_checks/base/checks/prometheus/prometheus_base.py":{"sha256":"26aaf5f0513547e2d420f96e8d8697016dd6fa8029fbf73d8d1f9b42f9a78271"},"datadog_checks_base/datadog_checks/base/checks/win/__init__.py":{"sha256":"abb57abfe1704169100b5416695cca68f8d931ac4f24725c2ddef50b4b8cedb0"},"datadog_checks_base/datadog_checks/base/checks/win/__init__.pyi":{"sha256":"f5cede8b0b33b3ef42bf44bfbfaafbe631ffd8f50b8c64d5a58b79f246f79749"},"datadog_checks_base/datadog_checks/base/checks/win/winpdh.py":{"sha256":"8a1178041d7fdc4a16bc54c2019e1331048e2da5a5bf59d633c000aa5b6105ae"},"datadog_checks_base/datadog_checks/base/checks/win/winpdh_base.py":{"sha256":"cf7a4f1c6d07e62c708de1a2d3c70b7b4d156d9dd731d9ed74986083adb74fb2"},"datadog_checks_base/datadog_checks/base/checks/win/winpdh_stub.py":{"sha256":"3397f2064cc0b842afa19ac6f64b506a9c241ffecaf8a388605e55a52f372cc9"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/__init__.py":{"sha256":"abb57abfe1704169100b5416695cca68f8d931ac4f24725c2ddef50b4b8cedb0"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/__init__.pyi":{"sha256":"da5816fdc0d7dfa9868308c14388dc514903e2920def741f5ef94f3bba0af97f"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/base.py":{"sha256":"c5b63c4b89afaae2399bba356fa6da79aba3e8fc44afd7822a5ba03bfc6c8b52"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/counter_type.py":{"sha256":"efbef65c6b56c8f2577b0caf698ca8c15983cbd0f1678da48bd583e5769bb951"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/sampler.py":{"sha256":"34996400b17ccb59210164687296c7d8ba70c6d41bd85f1fcc18426afbd15f8c"},"datadog_checks_base/datadog_checks/base/checks/win/wmi/types.py":{"sha256":"e04f1ed72a69d8ff9e3b180bb11adfb656aeaaf6a9582b956803e872a0abc158"},"datadog_checks_base/datadog_checks/base/checks/windows/__init__.py":{"sha256":"b2e1a32eb8591a9d541a935aa5c56f20fa7ebbc3de68cf24df3a650198f2712a"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/__init__.py":{"sha256":"c4ced6dabda1b7e2b1fe3d22f03bae7bf94433606ffdbab7be0d04b34009e4a1"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/base.py":{"sha256":"7176d05706f8f7a07e92e1da00cddf1375f7dcb3146caa180b8152489289adb7"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/connection.py":{"sha256":"986ed37527d26645c547a794e18fb8f4ae042c98aa7abe82c3863a17178a1106"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/constants.py":{"sha256":"fdaa806dab5cbbd790bfd36a6d509a43d7394be1e4922504455e68a82dc39799"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/counter.py":{"sha256":"96fd974db904c229f4f8f1dca9a7e42ea45f21f03e251a1b7713d094b8c46465"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transform.py":{"sha256":"6d93f17ed0f0d1dd55157e3dca21486be9da18e62529c320a6fb9e491920133f"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/__init__.py":{"sha256":"a8b142ebeee6817e16846d57125966018eac45ef4a9870efba31fbc9c2555e92"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/count.py":{"sha256":"8263467bddb648fe101243270ff9dcf30edba0a616fa65b69f9fbabe975c9a37"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/gauge.py":{"sha256":"73be1f652e85addc433ba64aa2fa75ee1daf85322691a351d8e2deb35af4d681"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/monotonic_count.py":{"sha256":"479c167c31bd2e471baab21d49ce9dce3470b40729dabe153ee5456aa3a5ce2d"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/rate.py":{"sha256":"3e4c739755cf6cfb68fb942b882a23361e5684c4e3c03710c2a63f8b6310052f"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/service_check.py":{"sha256":"c9d78281e503314ede295fc1c1908d89cb022ce7e8b0d7566a6a0713cc64a707"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/temporal_percent.py":{"sha256":"0d7bb591864394237bcc0da58cfcc6e8fc54ac532d6d34c07a084f0a390316f4"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/transformers/time_elapsed.py":{"sha256":"6ed4f3d91fd7a79b1345689f0e8f1b6780906c8c093cc6bacd1f6f38233316df"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/utils.py":{"sha256":"a2ffb8f0936f650e8a3c4671cfa5f42187009776d50059ccd79faf9467eab18d"},"datadog_checks_base/datadog_checks/base/checks/windows/perf_counters/utils_win32pdh_fix.py":{"sha256":"9d64eb01b07d5400ff0da693ad2055d8a0e606f8a9185988d38fb00df9f151af"},"datadog_checks_base/datadog_checks/base/config.py":{"sha256":"a9c000e17f6c5d065177041ef0382219ddbdf34541a7549003477af79b57fed5"},"datadog_checks_base/datadog_checks/base/constants.py":{"sha256":"711d7db40a95cac3056dd056a88199a0720a9359064f2a91b029fd15f1503a7c"},"datadog_checks_base/datadog_checks/base/errors.py":{"sha256":"7cf705691df31e94a4328f1ea6f1779517bd2ab1274bc83827475733f9efcecc"},"datadog_checks_base/datadog_checks/base/log.py":{"sha256":"8127f36229a6834cf70e09a7f0da57bb230d8e05f09936e7d0d732517f01d65b"},"datadog_checks_base/datadog_checks/base/stubs/__init__.py":{"sha256":"c2958047dbfb0624db6e64ceea9569b21a9aff3f8f59a613af7df049364bcf77"},"datadog_checks_base/datadog_checks/base/stubs/_util.py":{"sha256":"6431ad41af05ddc1dff3e42f4951cc0780462370bd5600bbb067061af3b46a92"},"datadog_checks_base/datadog_checks/base/stubs/aggregator.py":{"sha256":"6e9e19e949b031c06921dad4420bd3a8dc0ed20b4d779a209017e6dd8af4fa8a"},"datadog_checks_base/datadog_checks/base/stubs/common.py":{"sha256":"646cc5d9d5f2d6e545406746fdbbf3fe930c8942da05ca73adafe4f70a3d7f4e"},"datadog_checks_base/datadog_checks/base/stubs/datadog_agent.py":{"sha256":"7922fb75cdaaf2efd635aab909d876c9ead59478d480001dddd6b16206464728"},"datadog_checks_base/datadog_checks/base/stubs/log.py":{"sha256":"9d7788e4ec8d2915aeebd9f1cf771e01d86a9e496ab7213897acbc34f7bfa74f"},"datadog_checks_base/datadog_checks/base/stubs/similar.py":{"sha256":"dc73bd86dc7d2d5ea945a1356462ac3c4c5abd36e33c73cae9930cd813d88f76"},"datadog_checks_base/datadog_checks/base/stubs/tagging.py":{"sha256":"cf12dd3c2e04a87c46892fc71216da3ac2ffb399d922137c043931d810133aab"},"datadog_checks_base/datadog_checks/base/types.py":{"sha256":"6a76a3652d16d13b31507250c3e24738fd8d49eb82f418ac5d2cbd9804ad9714"},"datadog_checks_base/datadog_checks/base/utils/__init__.py":{"sha256":"4c2d2aee209b36a7188df5396b304da429e2f0b01060e7d8e8500313749910f0"},"datadog_checks_base/datadog_checks/base/utils/_http_utils.py":{"sha256":"c3cc21cf27261b354a94252fef4deb820daa3001744f7779d6307cbb9602e649"},"datadog_checks_base/datadog_checks/base/utils/agent/__init__.py":{"sha256":"a37696bf2dcf872903fe1ed84f7b3adbc3b45b66291e2b3436542c495d4f234e"},"datadog_checks_base/datadog_checks/base/utils/agent/common.py":{"sha256":"d5746c3c959da666f100a2815471813d49b858776f8aad28bee820b69c7b2d6a"},"datadog_checks_base/datadog_checks/base/utils/agent/debug.py":{"sha256":"cde05b34bb7763f5b1a5ff4e74092595d2f2d6098bd14e9b30398e1d20c63373"},"datadog_checks_base/datadog_checks/base/utils/agent/memory.py":{"sha256":"f6f35a21914859b753fdaecbef19e77f12f3246052579e5834b0c64dd4d1ef25"},"datadog_checks_base/datadog_checks/base/utils/agent/packages.py":{"sha256":"9a9924ab4d6c8b3cf3fb431d6ddfedfdd78c6a41c05f5a22675ad21460fe96e1"},"datadog_checks_base/datadog_checks/base/utils/agent/utils.py":{"sha256":"155fe8eab71c53907432b5f299afb8c80aa62a08649734de39fd6785872663ba"},"datadog_checks_base/datadog_checks/base/utils/aws.py":{"sha256":"c3114b5a5545b6fe7f11445db17cc384e45c4e93348c1940a2470c88f575c43f"},"datadog_checks_base/datadog_checks/base/utils/common.py":{"sha256":"3ad98a77914a8e5c09c116e113868898e0563ceccd3d5a9f5d79875e4e0c308c"},"datadog_checks_base/datadog_checks/base/utils/concurrency/__init__.py":{"sha256":"391b2c1396d766e62e6b95022deb067cfbdcad029c0031da0ec5eb5327c0445d"},"datadog_checks_base/datadog_checks/base/utils/concurrency/limiter.py":{"sha256":"8acd99a541237ec2389c11ad5c6d83d1982fd060f7f3f8b98c940291dccf5bf6"},"datadog_checks_base/datadog_checks/base/utils/constants.py":{"sha256":"4304decb8096074340c66dab703fb03d84641328257a4408ac0cc531a6c46b7f"},"datadog_checks_base/datadog_checks/base/utils/containers.py":{"sha256":"4ba73d92f98326e88787d84eeb63db76aae7866e9ed91dcee60187de5e63b4da"},"datadog_checks_base/datadog_checks/base/utils/cron.py":{"sha256":"ea1e1c38de175498bc2f38d6bb1d9f8524a6c4f6d63f165af2463aec81fb655a"},"datadog_checks_base/datadog_checks/base/utils/date.py":{"sha256":"2499aa3fce0281570527472f02632ef04b4ceaff7ab48112b9c40d9bd78a7847"},"datadog_checks_base/datadog_checks/base/utils/db/__init__.py":{"sha256":"1154dcd85b671d62c75c8dccefd8f2327f72a5900c6bd7aa1b710a2c088c17e3"},"datadog_checks_base/datadog_checks/base/utils/db/__init__.pyi":{"sha256":"7b0986c71c89e76c00698c4d65a862da4a0452775d7ef1dc9f71d8c50dd152bd"},"datadog_checks_base/datadog_checks/base/utils/db/core.py":{"sha256":"20d7e8375b852bd5debf6cbde94eba7374fc1e54ad501e07115ae763e44c9ad7"},"datadog_checks_base/datadog_checks/base/utils/db/health.py":{"sha256":"ae225a2489ceb9814adf2d30347d7d1e88c89173f041a32dbf1bb23c24719d96"},"datadog_checks_base/datadog_checks/base/utils/db/query.py":{"sha256":"83aaa8962c3aa34b3794db2f3e2bc392db19beb61209d85d2121771f254a3ef5"},"datadog_checks_base/datadog_checks/base/utils/db/schemas.py":{"sha256":"3df1d178300d3774d764f284292fb287ddb44e831a5471198197a64124bb5773"},"datadog_checks_base/datadog_checks/base/utils/db/sql.py":{"sha256":"a2213341afef0bfc3753ae5516b142a101d68f91902cb46548ed027e24a5a780"},"datadog_checks_base/datadog_checks/base/utils/db/sql_commenter.py":{"sha256":"aff79f2ba4c6450c4cffe423fa774425d102938ec9e270858e4572c6ed579af5"},"datadog_checks_base/datadog_checks/base/utils/db/statement_metrics.py":{"sha256":"b13def2f8c1900853652b0e73727635867f6f1270106e8e1d42c6d8333db127c"},"datadog_checks_base/datadog_checks/base/utils/db/timed_cache.py":{"sha256":"6bd2ace4a294bc4c41e863804d74d208b6a656d2c3f75f439fa1e9c1e18ab45c"},"datadog_checks_base/datadog_checks/base/utils/db/transform.py":{"sha256":"0bf58eac79fc74313171969d5af9311b9a3cba4203c306009937870df7ceb017"},"datadog_checks_base/datadog_checks/base/utils/db/types.py":{"sha256":"38b5f63aae7c2503c5043e28a94a422e400fee8bd118dfe2d6f164d44d0df0b8"},"datadog_checks_base/datadog_checks/base/utils/db/utils.py":{"sha256":"3046c5cf38ad77dfa7c205596d40cdc4ce7cdb3c94f686065edd59bf1eba6bac"},"datadog_checks_base/datadog_checks/base/utils/diagnose.py":{"sha256":"78b31ed2d212a64cd2df2c5547cdc81f1a2b4097c74ff5e2e82ab8cf344dc552"},"datadog_checks_base/datadog_checks/base/utils/discovery/__init__.py":{"sha256":"bcf08e76c4e105c06314944f8439ba22c6463b093c1e5bdc8b009efe5f1d28b9"},"datadog_checks_base/datadog_checks/base/utils/discovery/__init__.pyi":{"sha256":"49c54b5353638fd7a46667b096d6f47142c8e81ca5b2c5477e7e0270f35ecabf"},"datadog_checks_base/datadog_checks/base/utils/discovery/cache.py":{"sha256":"7fd2f703b619a59fa6a59a452308ec6b969bf5c64c1a4a9d7ad76bf44a5a95b2"},"datadog_checks_base/datadog_checks/base/utils/discovery/discovery.py":{"sha256":"9bcc3d55162eefc79dd202af56ee1c84dad1752302aae24edd85359b378e734d"},"datadog_checks_base/datadog_checks/base/utils/discovery/filter.py":{"sha256":"459f13ddb2cfe2e84af0a5f01aa76860c254f4edc402f3924e119ae702d0311f"},"datadog_checks_base/datadog_checks/base/utils/fips.py":{"sha256":"bf19b72bbc1340a61e9cfd4b6d793ba6627c580ea5dfaec14c918134ed0392f4"},"datadog_checks_base/datadog_checks/base/utils/format/__init__.py":{"sha256":"315b8b9d1858f958ca223629dc539346f2273b8a942c538d581091c9ac353b00"},"datadog_checks_base/datadog_checks/base/utils/format/_json.py":{"sha256":"09ae88905257e012aeaa1140946596b1e1e605213101cba78946895159f0c302"},"datadog_checks_base/datadog_checks/base/utils/format/json.py":{"sha256":"1b2f3873d974ccecbbdf5a820e2cb6d47a616620b7c36c12e8e45aebae0c1d9d"},"datadog_checks_base/datadog_checks/base/utils/functions.py":{"sha256":"8869726f147a68f3c494dc4d6f610b3b36e4df6f23f4e541031ade749c5d091c"},"datadog_checks_base/datadog_checks/base/utils/hashing.py":{"sha256":"74d01edd152f77b4c4dd699c0d7e9261085368c5ecc710c7b9ee1f3e416e2f94"},"datadog_checks_base/datadog_checks/base/utils/headers.py":{"sha256":"d1249d0bbd63c1a07ad413837eeb1a84256bd5ce7a1af4fd8b0b7b72275c1cfd"},"datadog_checks_base/datadog_checks/base/utils/http.py":{"sha256":"78f4b32fbc7fc6c6f57675c9c94d9f057220394d29e541592291b6017fe36590"},"datadog_checks_base/datadog_checks/base/utils/limiter.py":{"sha256":"6114eb3c25f54b912d1cb55c3fff8611fcd1a2db3f2d3732d5ffee1d956cf748"},"datadog_checks_base/datadog_checks/base/utils/metadata/__init__.py":{"sha256":"1154dcd85b671d62c75c8dccefd8f2327f72a5900c6bd7aa1b710a2c088c17e3"},"datadog_checks_base/datadog_checks/base/utils/metadata/__init__.pyi":{"sha256":"595a2fd3b68f28477275ccbc7b902177d08c4ff0dc43188eb42aa31b1d6449fe"},"datadog_checks_base/datadog_checks/base/utils/metadata/constants.py":{"sha256":"5c77cfc2f40c6f2344d8562607fed7c968862343761b17415dbb572f87839e27"},"datadog_checks_base/datadog_checks/base/utils/metadata/core.py":{"sha256":"eeb20aadfc3594d02870ef4705dd8cebf83e70a10fdaf99838e3cee8e926b939"},"datadog_checks_base/datadog_checks/base/utils/metadata/utils.py":{"sha256":"d3756946a79fa280add151008bd06fa25643de6dfeba14f6af642e276c5ce03e"},"datadog_checks_base/datadog_checks/base/utils/metadata/version.py":{"sha256":"ad0ebf687a6b0387530a47943306dd04dbf048e969385efadf6b16dbae2c75bb"},"datadog_checks_base/datadog_checks/base/utils/models/__init__.py":{"sha256":"b2e1a32eb8591a9d541a935aa5c56f20fa7ebbc3de68cf24df3a650198f2712a"},"datadog_checks_base/datadog_checks/base/utils/models/types.py":{"sha256":"c9b504a7dcffac396bdbea089158c4581fa6440bd4c28103a4051c6504c4208c"},"datadog_checks_base/datadog_checks/base/utils/models/validation/__init__.py":{"sha256":"c2730cf9d93ee0f59e226c39111fdb64ab6cf5c3f8111ec8523d679493143793"},"datadog_checks_base/datadog_checks/base/utils/models/validation/core.py":{"sha256":"e58a070f63eaceeaf03c6d4405758c81737dd7d569f3b358001e004dd440fcff"},"datadog_checks_base/datadog_checks/base/utils/models/validation/security.py":{"sha256":"d0c0f2c42bb92ecccb6521d5782fe2ae178fb9eec59b6fccc34db0de57dc5b7c"},"datadog_checks_base/datadog_checks/base/utils/models/validation/utils.py":{"sha256":"24be22141ff0da08f870aca800b92e11a2218195a36434016cc982e14e1fafa5"},"datadog_checks_base/datadog_checks/base/utils/persistent_cache.py":{"sha256":"d539347645991fcc87e08fdb319827861cf68dc65c232bbce5d36906fcb996c3"},"datadog_checks_base/datadog_checks/base/utils/platform.py":{"sha256":"c16f1fe972a8e091f1beed6c3740e92c39988d2fdc0aef06a0abdf4e3223e323"},"datadog_checks_base/datadog_checks/base/utils/prometheus/__init__.py":{"sha256":"a4d2d7db491726bb500c88450fa8e79c8135f2f175f4c7402809b7e1a3a583bc"},"datadog_checks_base/datadog_checks/base/utils/prometheus/__init__.pyi":{"sha256":"e774ac8fb7cffb2caf624f3990e79b517e487be6e61e31fe6d52989fd5f8ed67"},"datadog_checks_base/datadog_checks/base/utils/prometheus/functions.py":{"sha256":"c674f283d8937acffcde65a57351acf05150d6349163e94b3e8e530801626f2b"},"datadog_checks_base/datadog_checks/base/utils/prometheus/metrics_pb2.py":{"sha256":"8bfee9b8006b7cde3209393ebe13b0dc617fff94386a20f12b25efb5069df6ca"},"datadog_checks_base/datadog_checks/base/utils/replay/__init__.py":{"sha256":"391b2c1396d766e62e6b95022deb067cfbdcad029c0031da0ec5eb5327c0445d"},"datadog_checks_base/datadog_checks/base/utils/replay/constants.py":{"sha256":"7b10c6b0380b23bbb5196bde7a55dd8335894e3c47a18266413ee8ef0d4509e3"},"datadog_checks_base/datadog_checks/base/utils/replay/execute.py":{"sha256":"bcbec84fbff28e18eda93b4bc4a8944571480ba4997db388fb9a6acc9c0d202b"},"datadog_checks_base/datadog_checks/base/utils/replay/redirect.py":{"sha256":"44b93f734216035c3ec66afa750c16eca185909b750740e6417e55591b48a559"},"datadog_checks_base/datadog_checks/base/utils/secrets.py":{"sha256":"4e3e4c04ea321975c3581dc7afeed4283cb9195d4d6499053d8e13e2ff4f1c78"},"datadog_checks_base/datadog_checks/base/utils/serialization.py":{"sha256":"a5c454cd92146643ac7e718319bc5e530197ad2b0597ff6b2e10347a40ff019f"},"datadog_checks_base/datadog_checks/base/utils/subprocess_output.py":{"sha256":"0dbab19fc163a3b7f78e5fbc1363b0ddc564462eab3681f9e3bfe27ccb0ba95c"},"datadog_checks_base/datadog_checks/base/utils/tagging.py":{"sha256":"6bed3fa5718ec20e1ec260e22689fbaccffde9926f5691d5330872d49e51ac42"},"datadog_checks_base/datadog_checks/base/utils/tailfile.py":{"sha256":"419987f1e0b17829455913199facc3c203b1d72e5d017739c88feecc40a3d1a9"},"datadog_checks_base/datadog_checks/base/utils/time.py":{"sha256":"70dcbb0adb09cd250c8bb27edd645e65552f37260e1a427022da89318d35aaa0"},"datadog_checks_base/datadog_checks/base/utils/timeout.py":{"sha256":"78e059a1f14dfa13aee7125e30e17769cfe87dccbd118ebe92f981bcfe101058"},"datadog_checks_base/datadog_checks/base/utils/tls.py":{"sha256":"b68ff7dcc692123be8eb3bea466f60291c7f664f40caae77b67662b8abcdcb6e"},"datadog_checks_base/datadog_checks/base/utils/tracing.py":{"sha256":"d9066340a34abe8c11605a6a390738b14a18516bba249289a1f93eaefb2d5206"},"datadog_checks_base/datadog_checks/base/utils/tracking.py":{"sha256":"158228baabb7281f89b31831335897e48a6ffdc5a1b3ccd03933784b15ce909e"},"datadog_checks_base/datadog_checks/checks/__init__.py":{"sha256":"76381faa72acfce6863031501a53b955d2d047150023e5f828424b2e53e95483"},"datadog_checks_base/datadog_checks/checks/base.py":{"sha256":"df061b86e80d0375a5aedffe104a4198949297c9472ae52dad13fe9d5d8a05f4"},"datadog_checks_base/datadog_checks/checks/libs/__init__.py":{"sha256":"2300c3103843a8f3d4d63e0fcaf78691dbb508cbfd91b7de2bdd0802f981c777"},"datadog_checks_base/datadog_checks/checks/libs/thread_pool.py":{"sha256":"747147080f5d03c2742e233e4bd635d4c58abff8cf5c803fe5881f776c1603b4"},"datadog_checks_base/datadog_checks/checks/libs/timer.py":{"sha256":"a35b1970916e9035ae71d185b6506bbd2b798e26ef1b7b91fc3b30788b19dd49"},"datadog_checks_base/datadog_checks/checks/libs/vmware/__init__.py":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_base/datadog_checks/checks/libs/vmware/all_metrics.py":{"sha256":"849ca20bfd3b86aa8c8eeb88732b4026fd8a0e74a0a96ab6cbe269270b71a8c3"},"datadog_checks_base/datadog_checks/checks/libs/vmware/basic_metrics.py":{"sha256":"683af414d39b8d77d66fd97146999de4bd7a7be9ab934ed9224867a0b74c099f"},"datadog_checks_base/datadog_checks/checks/libs/wmi/__init__.py":{"sha256":"2300c3103843a8f3d4d63e0fcaf78691dbb508cbfd91b7de2bdd0802f981c777"},"datadog_checks_base/datadog_checks/checks/libs/wmi/sampler.py":{"sha256":"e3c981d33289c55ada249abeb51b1c5095c06cb11b9991f9a4228a695251e455"},"datadog_checks_base/datadog_checks/checks/network.py":{"sha256":"e5b7d11f19ac5286897259c2ac1e8209ee7bee94df199d5155e1b174cce6afbc"},"datadog_checks_base/datadog_checks/checks/network_checks.py":{"sha256":"cdb77741ebeaa7b6a13616873b5725009b7566a77ceef013fe5dd1c76cbdd81b"},"datadog_checks_base/datadog_checks/checks/openmetrics/__init__.py":{"sha256":"96b910b1c359a0b37a0a8753b6e1e50c803ae35bf4f1e7a31418678cf16792c0"},"datadog_checks_base/datadog_checks/checks/openmetrics/base_check.py":{"sha256":"a9ccd2133baa1058f744e494e2bb43cb5221fbbb41b6c3b8a0553ead7f6a851f"},"datadog_checks_base/datadog_checks/checks/openmetrics/mixins.py":{"sha256":"b5b9cf9d77c8dda6d752a4d37d303405fa1935ac071b17a4e8b055160b7d2a28"},"datadog_checks_base/datadog_checks/checks/prometheus/__init__.py":{"sha256":"a12ac852908b6eb9f3b594e893c41a38951a9a1e030b6286c20e76aec9965c8b"},"datadog_checks_base/datadog_checks/checks/prometheus/base_check.py":{"sha256":"882984f28171bfde4a2c34c25f609b5a758917f0c9b9e00b2ba9a0d489ba1e19"},"datadog_checks_base/datadog_checks/checks/prometheus/mixins.py":{"sha256":"aa652ec3963f90c1e7c552d35243d3863f737fa9de5e45131ca55758c5e00de5"},"datadog_checks_base/datadog_checks/checks/prometheus/prometheus_base.py":{"sha256":"434576db21c019a7366f5350b8e305c0790509aadd9cbd980f6c3ac22b87874f"},"datadog_checks_base/datadog_checks/checks/prometheus_check/__init__.py":{"sha256":"9b5434e894e03018e342ee726f635de62122bf0e1d8f59d3f0109f89a95d890d"},"datadog_checks_base/datadog_checks/checks/win/__init__.py":{"sha256":"4441d475ac7181f8e7edf1037da1310d776c647883d0362a5acfb88e44e4d45e"},"datadog_checks_base/datadog_checks/checks/win/winpdh.py":{"sha256":"864f9f437a351bb82a2962e15a1198cc6271f9cc25c3c73522402954fa42ef9e"},"datadog_checks_base/datadog_checks/checks/win/winpdh_base.py":{"sha256":"269e7c39a6562687aa6ad022b1b88c85b5f6be403c11a8412775b3c55715196e"},"datadog_checks_base/datadog_checks/checks/win/winpdh_stub.py":{"sha256":"a1895061a3be05415b331c1b17d2c02b1f912f36ed238948c46d7af68025d7ed"},"datadog_checks_base/datadog_checks/checks/win/wmi/__init__.py":{"sha256":"51008a1bf148ec1c7bc0bb8f6ad3be19ba950e6c13b5cb84a2fd2684fb66327e"},"datadog_checks_base/datadog_checks/checks/win/wmi/counter_type.py":{"sha256":"01ac5dc9d1518c74c4b621a1da0b901da5ffc954abcf81972f8e478abdb098a7"},"datadog_checks_base/datadog_checks/checks/win/wmi/sampler.py":{"sha256":"bbfeea3683c40059f5e1ff52fc459e82200727041a187328d65f58b92b445cdd"},"datadog_checks_base/datadog_checks/checks/winwmi_check.py":{"sha256":"907ea75f4055e675b732171687ce6148d6484d067b36726b942b4e9c5e1d747b"},"datadog_checks_base/datadog_checks/config.py":{"sha256":"3eb01719d94b9e857654c41f7ff9e849a489274c20e010221a7c3b8c240b4a29"},"datadog_checks_base/datadog_checks/errors.py":{"sha256":"785c269eb5fe6dab4881bbbe889cac7aa00f34eff8ae4d54b9a28af3d7af2e18"},"datadog_checks_base/datadog_checks/log.py":{"sha256":"a2bbce80c286344b2a4932da942010a563fea2ea2ba46d40ec69fe8f69910fcd"},"datadog_checks_base/datadog_checks/py.typed":{"sha256":"95aebb28195b8d737effe0df18d71d39c8d8ba6569286fd3930fbc9f9767181e"},"datadog_checks_base/datadog_checks/stubs/__init__.py":{"sha256":"331c49e4d1a353ded64777893a96906746f386f03cf32b30135aa260665377ec"},"datadog_checks_base/datadog_checks/stubs/_util.py":{"sha256":"9989e9f7fbeca50c1359c06188f60c309dc421c40f4a9a407147d18c42c180b5"},"datadog_checks_base/datadog_checks/stubs/aggregator.py":{"sha256":"ea230225c9c41fbb1885a38741cccf1809034d9b1fd696eb6efde1de6bfba762"},"datadog_checks_base/datadog_checks/stubs/datadog_agent.py":{"sha256":"b167bb8f650441e0f3762aa3e0ffe73e1921157f34ff90abe47723db963ec6bf"},"datadog_checks_base/datadog_checks/utils/__init__.py":{"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"datadog_checks_base/datadog_checks/utils/common.py":{"sha256":"470a0220a572f2f6df6b61353fb63b82447d569274d15b6e3f5f0c12b5e7f6b9"},"datadog_checks_base/datadog_checks/utils/containers.py":{"sha256":"ca56286c527f7d5f940b0baf5a66a4eba6ad2df036759f6000b0985835c63a29"},"datadog_checks_base/datadog_checks/utils/headers.py":{"sha256":"8f92abe525d4947ba4dd41870d0367f4cda884df95e57d9fce62718f0e8fe8da"},"datadog_checks_base/datadog_checks/utils/limiter.py":{"sha256":"1aad3f848119c3aaa92394962ffbb331a22991bcef173b242347a54cffef22c1"},"datadog_checks_base/datadog_checks/utils/platform.py":{"sha256":"76ca8472c0bf63b866e28aea3bc449e4de63905a41ee9c8662f09e5eb6fef571"},"datadog_checks_base/datadog_checks/utils/prometheus/__init__.py":{"sha256":"f16c179ccf60d6c7d2e76ebb4180895ff85df0c665e6446006043f4b374d757b"},"datadog_checks_base/datadog_checks/utils/prometheus/functions.py":{"sha256":"e2f5ac4c62e0ba31f0758668d2d940424a833c7a1fa9424cde4f5e22d26a1114"},"datadog_checks_base/datadog_checks/utils/prometheus/metrics_pb2.py":{"sha256":"c60dd47541dee138de478b35dcb50a6765355954ade94eb38ec5511ba957e9d7"},"datadog_checks_base/datadog_checks/utils/proxy.py":{"sha256":"723edeaf00a1ee813aa4a6467fc34c3ae419f354c6b6172de678e39b864a8bd7"},"datadog_checks_base/datadog_checks/utils/subprocess_output.py":{"sha256":"80dea34445564d9eee264533455310e69c72b4d640e369ea8c97a365717a64c2"},"datadog_checks_base/datadog_checks/utils/tailfile.py":{"sha256":"6c4aa2725fac2e0cb0f660f545d5a8b3c1954a50a49f1e58c86ddf5cc068c137"},"datadog_checks_base/datadog_checks/utils/timeout.py":{"sha256":"42e848b0a6686bf335dfe8040b07acbb9219c12317cfdf564f0a9a974262c913"},"datadog_checks_base/datadog_checks/utils/tracing.py":{"sha256":"1d06d06a428cf8bc3be4c0e422d6982588a94ba60edb867fca60d5c43b31e435"},"datadog_checks_base/pyproject.toml":{"sha256":"7d91f3690101c2689f0ee417378ae4d7fd322d97ccc38e58784a667286cbc9dc"}}}} \ No newline at end of file diff --git a/datadog_checks_base/CHANGELOG.md b/datadog_checks_base/CHANGELOG.md index 3d749a99ab496..386c9abe69ef2 100644 --- a/datadog_checks_base/CHANGELOG.md +++ b/datadog_checks_base/CHANGELOG.md @@ -2,6 +2,13 @@ +## 37.39.0 / 2026-05-29 + +***Added***: + +* Add file-based YAML metrics loading for OpenMetrics V2 checks with composable predicates ([#22750](https://github.com/DataDog/integrations-core/pull/22750)) +* Add ``CronExpression`` and ``CronScheduler`` utilities for cron-style scheduling inside check methods. ([#23741](https://github.com/DataDog/integrations-core/pull/23741)) + ## 37.38.0 / 2026-05-22 ***Security***: diff --git a/datadog_checks_base/changelog.d/22750.added b/datadog_checks_base/changelog.d/22750.added deleted file mode 100644 index e8a49db170139..0000000000000 --- a/datadog_checks_base/changelog.d/22750.added +++ /dev/null @@ -1 +0,0 @@ -Add file-based YAML metrics loading for OpenMetrics V2 checks with composable predicates \ No newline at end of file diff --git a/datadog_checks_base/changelog.d/23741.added b/datadog_checks_base/changelog.d/23741.added deleted file mode 100644 index 069f5faaf08c5..0000000000000 --- a/datadog_checks_base/changelog.d/23741.added +++ /dev/null @@ -1 +0,0 @@ -Add ``CronExpression`` and ``CronScheduler`` utilities for cron-style scheduling inside check methods. diff --git a/datadog_checks_base/datadog_checks/base/__about__.py b/datadog_checks_base/datadog_checks/base/__about__.py index aa3c71489a1d0..2c5ba0cdf7a3e 100644 --- a/datadog_checks_base/datadog_checks/base/__about__.py +++ b/datadog_checks_base/datadog_checks/base/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "37.38.0" +__version__ = "37.39.0" diff --git a/requirements-agent-release.txt b/requirements-agent-release.txt index 4e4421321fb79..0b023cd05cfec 100644 --- a/requirements-agent-release.txt +++ b/requirements-agent-release.txt @@ -34,7 +34,7 @@ datadog-ceph==4.5.1; sys_platform != 'win32' datadog-cert-manager==6.4.1 datadog-checkpoint-harmony-endpoint==1.2.0 datadog-checkpoint-quantum-firewall==1.3.0 -datadog-checks-base==37.38.0 +datadog-checks-base==37.39.0 datadog-checks-dependency-provider==3.2.0 datadog-checks-downloader==9.1.0 datadog-cilium==6.4.1