|
3 | 3 | from __future__ import annotations |
4 | 4 |
|
5 | 5 | from typing import List, Type, Iterable, cast |
| 6 | +from typing_extensions import Literal |
6 | 7 |
|
7 | 8 | import httpx |
8 | 9 |
|
|
11 | 12 | telemetry_query_spans_params, |
12 | 13 | telemetry_query_traces_params, |
13 | 14 | telemetry_get_span_tree_params, |
| 15 | + telemetry_query_metrics_params, |
14 | 16 | telemetry_save_spans_to_dataset_params, |
15 | 17 | ) |
16 | 18 | from .._types import NOT_GIVEN, Body, Query, Headers, NoneType, NotGiven |
|
32 | 34 | from ..types.telemetry_query_spans_response import TelemetryQuerySpansResponse |
33 | 35 | from ..types.telemetry_query_traces_response import TelemetryQueryTracesResponse |
34 | 36 | from ..types.telemetry_get_span_tree_response import TelemetryGetSpanTreeResponse |
| 37 | +from ..types.telemetry_query_metrics_response import TelemetryQueryMetricsResponse |
35 | 38 |
|
36 | 39 | __all__ = ["TelemetryResource", "AsyncTelemetryResource"] |
37 | 40 |
|
@@ -219,6 +222,68 @@ def log_event( |
219 | 222 | cast_to=NoneType, |
220 | 223 | ) |
221 | 224 |
|
| 225 | + def query_metrics( |
| 226 | + self, |
| 227 | + metric_name: str, |
| 228 | + *, |
| 229 | + query_type: Literal["range", "instant"], |
| 230 | + start_time: int, |
| 231 | + end_time: int | NotGiven = NOT_GIVEN, |
| 232 | + granularity: str | NotGiven = NOT_GIVEN, |
| 233 | + label_matchers: Iterable[telemetry_query_metrics_params.LabelMatcher] | NotGiven = NOT_GIVEN, |
| 234 | + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. |
| 235 | + # The extra values given here take precedence over values defined on the client or passed to this method. |
| 236 | + extra_headers: Headers | None = None, |
| 237 | + extra_query: Query | None = None, |
| 238 | + extra_body: Body | None = None, |
| 239 | + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, |
| 240 | + ) -> TelemetryQueryMetricsResponse: |
| 241 | + """ |
| 242 | + Query metrics. |
| 243 | +
|
| 244 | + Args: |
| 245 | + query_type: The type of query to perform. |
| 246 | +
|
| 247 | + start_time: The start time of the metric to query. |
| 248 | +
|
| 249 | + end_time: The end time of the metric to query. |
| 250 | +
|
| 251 | + granularity: The granularity of the metric to query. |
| 252 | +
|
| 253 | + label_matchers: The label matchers to apply to the metric. |
| 254 | +
|
| 255 | + extra_headers: Send extra headers |
| 256 | +
|
| 257 | + extra_query: Add additional query parameters to the request |
| 258 | +
|
| 259 | + extra_body: Add additional JSON properties to the request |
| 260 | +
|
| 261 | + timeout: Override the client-level default timeout for this request, in seconds |
| 262 | + """ |
| 263 | + if not metric_name: |
| 264 | + raise ValueError(f"Expected a non-empty value for `metric_name` but received {metric_name!r}") |
| 265 | + return self._post( |
| 266 | + f"/v1/telemetry/metrics/{metric_name}", |
| 267 | + body=maybe_transform( |
| 268 | + { |
| 269 | + "query_type": query_type, |
| 270 | + "start_time": start_time, |
| 271 | + "end_time": end_time, |
| 272 | + "granularity": granularity, |
| 273 | + "label_matchers": label_matchers, |
| 274 | + }, |
| 275 | + telemetry_query_metrics_params.TelemetryQueryMetricsParams, |
| 276 | + ), |
| 277 | + options=make_request_options( |
| 278 | + extra_headers=extra_headers, |
| 279 | + extra_query=extra_query, |
| 280 | + extra_body=extra_body, |
| 281 | + timeout=timeout, |
| 282 | + post_parser=DataWrapper[TelemetryQueryMetricsResponse]._unwrapper, |
| 283 | + ), |
| 284 | + cast_to=cast(Type[TelemetryQueryMetricsResponse], DataWrapper[TelemetryQueryMetricsResponse]), |
| 285 | + ) |
| 286 | + |
222 | 287 | def query_spans( |
223 | 288 | self, |
224 | 289 | *, |
@@ -561,6 +626,68 @@ async def log_event( |
561 | 626 | cast_to=NoneType, |
562 | 627 | ) |
563 | 628 |
|
| 629 | + async def query_metrics( |
| 630 | + self, |
| 631 | + metric_name: str, |
| 632 | + *, |
| 633 | + query_type: Literal["range", "instant"], |
| 634 | + start_time: int, |
| 635 | + end_time: int | NotGiven = NOT_GIVEN, |
| 636 | + granularity: str | NotGiven = NOT_GIVEN, |
| 637 | + label_matchers: Iterable[telemetry_query_metrics_params.LabelMatcher] | NotGiven = NOT_GIVEN, |
| 638 | + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. |
| 639 | + # The extra values given here take precedence over values defined on the client or passed to this method. |
| 640 | + extra_headers: Headers | None = None, |
| 641 | + extra_query: Query | None = None, |
| 642 | + extra_body: Body | None = None, |
| 643 | + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, |
| 644 | + ) -> TelemetryQueryMetricsResponse: |
| 645 | + """ |
| 646 | + Query metrics. |
| 647 | +
|
| 648 | + Args: |
| 649 | + query_type: The type of query to perform. |
| 650 | +
|
| 651 | + start_time: The start time of the metric to query. |
| 652 | +
|
| 653 | + end_time: The end time of the metric to query. |
| 654 | +
|
| 655 | + granularity: The granularity of the metric to query. |
| 656 | +
|
| 657 | + label_matchers: The label matchers to apply to the metric. |
| 658 | +
|
| 659 | + extra_headers: Send extra headers |
| 660 | +
|
| 661 | + extra_query: Add additional query parameters to the request |
| 662 | +
|
| 663 | + extra_body: Add additional JSON properties to the request |
| 664 | +
|
| 665 | + timeout: Override the client-level default timeout for this request, in seconds |
| 666 | + """ |
| 667 | + if not metric_name: |
| 668 | + raise ValueError(f"Expected a non-empty value for `metric_name` but received {metric_name!r}") |
| 669 | + return await self._post( |
| 670 | + f"/v1/telemetry/metrics/{metric_name}", |
| 671 | + body=await async_maybe_transform( |
| 672 | + { |
| 673 | + "query_type": query_type, |
| 674 | + "start_time": start_time, |
| 675 | + "end_time": end_time, |
| 676 | + "granularity": granularity, |
| 677 | + "label_matchers": label_matchers, |
| 678 | + }, |
| 679 | + telemetry_query_metrics_params.TelemetryQueryMetricsParams, |
| 680 | + ), |
| 681 | + options=make_request_options( |
| 682 | + extra_headers=extra_headers, |
| 683 | + extra_query=extra_query, |
| 684 | + extra_body=extra_body, |
| 685 | + timeout=timeout, |
| 686 | + post_parser=DataWrapper[TelemetryQueryMetricsResponse]._unwrapper, |
| 687 | + ), |
| 688 | + cast_to=cast(Type[TelemetryQueryMetricsResponse], DataWrapper[TelemetryQueryMetricsResponse]), |
| 689 | + ) |
| 690 | + |
564 | 691 | async def query_spans( |
565 | 692 | self, |
566 | 693 | *, |
@@ -736,6 +863,9 @@ def __init__(self, telemetry: TelemetryResource) -> None: |
736 | 863 | self.log_event = to_raw_response_wrapper( |
737 | 864 | telemetry.log_event, |
738 | 865 | ) |
| 866 | + self.query_metrics = to_raw_response_wrapper( |
| 867 | + telemetry.query_metrics, |
| 868 | + ) |
739 | 869 | self.query_spans = to_raw_response_wrapper( |
740 | 870 | telemetry.query_spans, |
741 | 871 | ) |
@@ -763,6 +893,9 @@ def __init__(self, telemetry: AsyncTelemetryResource) -> None: |
763 | 893 | self.log_event = async_to_raw_response_wrapper( |
764 | 894 | telemetry.log_event, |
765 | 895 | ) |
| 896 | + self.query_metrics = async_to_raw_response_wrapper( |
| 897 | + telemetry.query_metrics, |
| 898 | + ) |
766 | 899 | self.query_spans = async_to_raw_response_wrapper( |
767 | 900 | telemetry.query_spans, |
768 | 901 | ) |
@@ -790,6 +923,9 @@ def __init__(self, telemetry: TelemetryResource) -> None: |
790 | 923 | self.log_event = to_streamed_response_wrapper( |
791 | 924 | telemetry.log_event, |
792 | 925 | ) |
| 926 | + self.query_metrics = to_streamed_response_wrapper( |
| 927 | + telemetry.query_metrics, |
| 928 | + ) |
793 | 929 | self.query_spans = to_streamed_response_wrapper( |
794 | 930 | telemetry.query_spans, |
795 | 931 | ) |
@@ -817,6 +953,9 @@ def __init__(self, telemetry: AsyncTelemetryResource) -> None: |
817 | 953 | self.log_event = async_to_streamed_response_wrapper( |
818 | 954 | telemetry.log_event, |
819 | 955 | ) |
| 956 | + self.query_metrics = async_to_streamed_response_wrapper( |
| 957 | + telemetry.query_metrics, |
| 958 | + ) |
820 | 959 | self.query_spans = async_to_streamed_response_wrapper( |
821 | 960 | telemetry.query_spans, |
822 | 961 | ) |
|
0 commit comments