Skip to content

Commit 82e7eee

Browse files
feat(api): some updates to query metrics
1 parent 7c5973e commit 82e7eee

File tree

8 files changed

+194
-69
lines changed

8 files changed

+194
-69
lines changed

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 106
1+
configured_endpoints: 107
22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack%2Fllama-stack-client-f252873ea1e1f38fd207331ef2621c511154d5be3f4076e59cc15754fc58eee4.yml
33
openapi_spec_hash: 10cbb4337a06a9fdd7d08612dd6044c3
4-
config_hash: ddcbd66d7ac80290da208232a746e30f
4+
config_hash: 17fe64b23723fc54f2ee61c80223c3e3

api.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -450,12 +450,14 @@ Methods:
450450
Types:
451451

452452
- <code><a href="./src/resources/telemetry.ts">Event</a></code>
453+
- <code><a href="./src/resources/telemetry.ts">Metric</a></code>
453454
- <code><a href="./src/resources/telemetry.ts">QueryCondition</a></code>
454455
- <code><a href="./src/resources/telemetry.ts">QuerySpansResponse</a></code>
455456
- <code><a href="./src/resources/telemetry.ts">SpanWithStatus</a></code>
456457
- <code><a href="./src/resources/telemetry.ts">Trace</a></code>
457458
- <code><a href="./src/resources/telemetry.ts">TelemetryGetSpanResponse</a></code>
458459
- <code><a href="./src/resources/telemetry.ts">TelemetryGetSpanTreeResponse</a></code>
460+
- <code><a href="./src/resources/telemetry.ts">TelemetryQueryMetricsResponse</a></code>
459461
- <code><a href="./src/resources/telemetry.ts">TelemetryQuerySpansResponse</a></code>
460462
- <code><a href="./src/resources/telemetry.ts">TelemetryQueryTracesResponse</a></code>
461463

@@ -465,6 +467,7 @@ Methods:
465467
- <code title="post /v1/telemetry/spans/{span_id}/tree">client.telemetry.<a href="./src/resources/telemetry.ts">getSpanTree</a>(spanId, { ...params }) -> TelemetryGetSpanTreeResponse</code>
466468
- <code title="get /v1/telemetry/traces/{trace_id}">client.telemetry.<a href="./src/resources/telemetry.ts">getTrace</a>(traceId) -> Trace</code>
467469
- <code title="post /v1/telemetry/events">client.telemetry.<a href="./src/resources/telemetry.ts">logEvent</a>({ ...params }) -> void</code>
470+
- <code title="post /v1/telemetry/metrics/{metric_name}">client.telemetry.<a href="./src/resources/telemetry.ts">queryMetrics</a>(metricName, { ...params }) -> TelemetryQueryMetricsResponse</code>
468471
- <code title="post /v1/telemetry/spans">client.telemetry.<a href="./src/resources/telemetry.ts">querySpans</a>({ ...params }) -> TelemetryQuerySpansResponse</code>
469472
- <code title="post /v1/telemetry/traces">client.telemetry.<a href="./src/resources/telemetry.ts">queryTraces</a>({ ...params }) -> TelemetryQueryTracesResponse</code>
470473
- <code title="post /v1/telemetry/spans/export">client.telemetry.<a href="./src/resources/telemetry.ts">saveSpansToDataset</a>({ ...params }) -> void</code>

src/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ import {
106106
} from './resources/synthetic-data-generation';
107107
import {
108108
Event,
109+
Metric,
109110
QueryCondition,
110111
QuerySpansResponse,
111112
SpanWithStatus,
@@ -114,6 +115,8 @@ import {
114115
TelemetryGetSpanTreeParams,
115116
TelemetryGetSpanTreeResponse,
116117
TelemetryLogEventParams,
118+
TelemetryQueryMetricsParams,
119+
TelemetryQueryMetricsResponse,
117120
TelemetryQuerySpansParams,
118121
TelemetryQuerySpansResponse,
119122
TelemetryQueryTracesParams,
@@ -645,16 +648,19 @@ export declare namespace LlamaStackClient {
645648
export {
646649
Telemetry as Telemetry,
647650
type Event as Event,
651+
type Metric as Metric,
648652
type QueryCondition as QueryCondition,
649653
type QuerySpansResponse as QuerySpansResponse,
650654
type SpanWithStatus as SpanWithStatus,
651655
type Trace as Trace,
652656
type TelemetryGetSpanResponse as TelemetryGetSpanResponse,
653657
type TelemetryGetSpanTreeResponse as TelemetryGetSpanTreeResponse,
658+
type TelemetryQueryMetricsResponse as TelemetryQueryMetricsResponse,
654659
type TelemetryQuerySpansResponse as TelemetryQuerySpansResponse,
655660
type TelemetryQueryTracesResponse as TelemetryQueryTracesResponse,
656661
type TelemetryGetSpanTreeParams as TelemetryGetSpanTreeParams,
657662
type TelemetryLogEventParams as TelemetryLogEventParams,
663+
type TelemetryQueryMetricsParams as TelemetryQueryMetricsParams,
658664
type TelemetryQuerySpansParams as TelemetryQuerySpansParams,
659665
type TelemetryQueryTracesParams as TelemetryQueryTracesParams,
660666
type TelemetrySaveSpansToDatasetParams as TelemetrySaveSpansToDatasetParams,

src/resources/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,16 +139,19 @@ export {
139139
export {
140140
Telemetry,
141141
type Event,
142+
type Metric,
142143
type QueryCondition,
143144
type QuerySpansResponse,
144145
type SpanWithStatus,
145146
type Trace,
146147
type TelemetryGetSpanResponse,
147148
type TelemetryGetSpanTreeResponse,
149+
type TelemetryQueryMetricsResponse,
148150
type TelemetryQuerySpansResponse,
149151
type TelemetryQueryTracesResponse,
150152
type TelemetryGetSpanTreeParams,
151153
type TelemetryLogEventParams,
154+
type TelemetryQueryMetricsParams,
152155
type TelemetryQuerySpansParams,
153156
type TelemetryQueryTracesParams,
154157
type TelemetrySaveSpansToDatasetParams,

src/resources/inference.ts

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { APIPromise } from '../core';
55
import * as Core from '../core';
66
import * as InferenceAPI from './inference';
77
import * as Shared from './shared';
8+
import * as TelemetryAPI from './telemetry';
89
import { Stream } from '../streaming';
910

1011
export class Inference extends APIResource {
@@ -109,7 +110,7 @@ export interface ChatCompletionResponseStreamChunk {
109110
/**
110111
* (Optional) List of metrics associated with the API response
111112
*/
112-
metrics?: Array<ChatCompletionResponseStreamChunk.Metric>;
113+
metrics?: Array<TelemetryAPI.Metric>;
113114
}
114115

115116
export namespace ChatCompletionResponseStreamChunk {
@@ -138,26 +139,6 @@ export namespace ChatCompletionResponseStreamChunk {
138139
*/
139140
stop_reason?: 'end_of_turn' | 'end_of_message' | 'out_of_tokens';
140141
}
141-
142-
/**
143-
* A metric value included in API responses.
144-
*/
145-
export interface Metric {
146-
/**
147-
* The name of the metric
148-
*/
149-
metric: string;
150-
151-
/**
152-
* The numeric value of the metric
153-
*/
154-
value: number;
155-
156-
/**
157-
* (Optional) The unit of measurement for the metric value
158-
*/
159-
unit?: string;
160-
}
161142
}
162143

163144
/**

src/resources/shared.ts

Lines changed: 3 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

33
import * as Shared from './shared';
4+
import * as TelemetryAPI from './telemetry';
45

56
/**
67
* Configuration for an agent.
@@ -193,29 +194,7 @@ export namespace BatchCompletion {
193194
/**
194195
* (Optional) List of metrics associated with the API response
195196
*/
196-
metrics?: Array<Batch.Metric>;
197-
}
198-
199-
export namespace Batch {
200-
/**
201-
* A metric value included in API responses.
202-
*/
203-
export interface Metric {
204-
/**
205-
* The name of the metric
206-
*/
207-
metric: string;
208-
209-
/**
210-
* The numeric value of the metric
211-
*/
212-
value: number;
213-
214-
/**
215-
* (Optional) The unit of measurement for the metric value
216-
*/
217-
unit?: string;
218-
}
197+
metrics?: Array<TelemetryAPI.Metric>;
219198
}
220199
}
221200

@@ -236,29 +215,7 @@ export interface ChatCompletionResponse {
236215
/**
237216
* (Optional) List of metrics associated with the API response
238217
*/
239-
metrics?: Array<ChatCompletionResponse.Metric>;
240-
}
241-
242-
export namespace ChatCompletionResponse {
243-
/**
244-
* A metric value included in API responses.
245-
*/
246-
export interface Metric {
247-
/**
248-
* The name of the metric
249-
*/
250-
metric: string;
251-
252-
/**
253-
* The numeric value of the metric
254-
*/
255-
value: number;
256-
257-
/**
258-
* (Optional) The unit of measurement for the metric value
259-
*/
260-
unit?: string;
261-
}
218+
metrics?: Array<TelemetryAPI.Metric>;
262219
}
263220

264221
/**

src/resources/telemetry.ts

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,21 @@ export class Telemetry extends APIResource {
4848
});
4949
}
5050

51+
/**
52+
* Query metrics.
53+
*/
54+
queryMetrics(
55+
metricName: string,
56+
body: TelemetryQueryMetricsParams,
57+
options?: Core.RequestOptions,
58+
): Core.APIPromise<TelemetryQueryMetricsResponse> {
59+
return (
60+
this._client.post(`/v1/telemetry/metrics/${metricName}`, { body, ...options }) as Core.APIPromise<{
61+
data: TelemetryQueryMetricsResponse;
62+
}>
63+
)._thenUnwrap((obj) => obj.data);
64+
}
65+
5166
/**
5267
* Query spans.
5368
*/
@@ -255,6 +270,26 @@ export namespace Event {
255270
}
256271
}
257272

273+
/**
274+
* A metric value included in API responses.
275+
*/
276+
export interface Metric {
277+
/**
278+
* The name of the metric
279+
*/
280+
metric: string;
281+
282+
/**
283+
* The numeric value of the metric
284+
*/
285+
value: number;
286+
287+
/**
288+
* (Optional) The unit of measurement for the metric value
289+
*/
290+
unit?: string;
291+
}
292+
258293
/**
259294
* A condition for filtering query results.
260295
*/
@@ -401,6 +436,68 @@ export interface TelemetryGetSpanResponse {
401436
*/
402437
export type TelemetryGetSpanTreeResponse = { [key: string]: SpanWithStatus };
403438

439+
/**
440+
* List of metric series matching the query criteria
441+
*/
442+
export type TelemetryQueryMetricsResponse =
443+
Array<TelemetryQueryMetricsResponse.TelemetryQueryMetricsResponseItem>;
444+
445+
export namespace TelemetryQueryMetricsResponse {
446+
/**
447+
* A time series of metric data points.
448+
*/
449+
export interface TelemetryQueryMetricsResponseItem {
450+
/**
451+
* List of labels associated with this metric series
452+
*/
453+
labels: Array<TelemetryQueryMetricsResponseItem.Label>;
454+
455+
/**
456+
* The name of the metric
457+
*/
458+
metric: string;
459+
460+
/**
461+
* List of data points in chronological order
462+
*/
463+
values: Array<TelemetryQueryMetricsResponseItem.Value>;
464+
}
465+
466+
export namespace TelemetryQueryMetricsResponseItem {
467+
/**
468+
* A label associated with a metric.
469+
*/
470+
export interface Label {
471+
/**
472+
* The name of the label
473+
*/
474+
name: string;
475+
476+
/**
477+
* The value of the label
478+
*/
479+
value: string;
480+
}
481+
482+
/**
483+
* A single data point in a metric time series.
484+
*/
485+
export interface Value {
486+
/**
487+
* Unix timestamp when the metric value was recorded
488+
*/
489+
timestamp: number;
490+
491+
unit: string;
492+
493+
/**
494+
* The numeric value of the metric at this timestamp
495+
*/
496+
value: number;
497+
}
498+
}
499+
}
500+
404501
/**
405502
* List of spans matching the query criteria
406503
*/
@@ -477,6 +574,55 @@ export interface TelemetryLogEventParams {
477574
ttl_seconds: number;
478575
}
479576

577+
export interface TelemetryQueryMetricsParams {
578+
/**
579+
* The type of query to perform.
580+
*/
581+
query_type: 'range' | 'instant';
582+
583+
/**
584+
* The start time of the metric to query.
585+
*/
586+
start_time: number;
587+
588+
/**
589+
* The end time of the metric to query.
590+
*/
591+
end_time?: number;
592+
593+
/**
594+
* The granularity of the metric to query.
595+
*/
596+
granularity?: string;
597+
598+
/**
599+
* The label matchers to apply to the metric.
600+
*/
601+
label_matchers?: Array<TelemetryQueryMetricsParams.LabelMatcher>;
602+
}
603+
604+
export namespace TelemetryQueryMetricsParams {
605+
/**
606+
* A matcher for filtering metrics by label values.
607+
*/
608+
export interface LabelMatcher {
609+
/**
610+
* The name of the label to match
611+
*/
612+
name: string;
613+
614+
/**
615+
* The comparison operator to use for matching
616+
*/
617+
operator: '=' | '!=' | '=~' | '!~';
618+
619+
/**
620+
* The value to match against
621+
*/
622+
value: string;
623+
}
624+
}
625+
480626
export interface TelemetryQuerySpansParams {
481627
/**
482628
* The attribute filters to apply to the spans.
@@ -541,16 +687,19 @@ export interface TelemetrySaveSpansToDatasetParams {
541687
export declare namespace Telemetry {
542688
export {
543689
type Event as Event,
690+
type Metric as Metric,
544691
type QueryCondition as QueryCondition,
545692
type QuerySpansResponse as QuerySpansResponse,
546693
type SpanWithStatus as SpanWithStatus,
547694
type Trace as Trace,
548695
type TelemetryGetSpanResponse as TelemetryGetSpanResponse,
549696
type TelemetryGetSpanTreeResponse as TelemetryGetSpanTreeResponse,
697+
type TelemetryQueryMetricsResponse as TelemetryQueryMetricsResponse,
550698
type TelemetryQuerySpansResponse as TelemetryQuerySpansResponse,
551699
type TelemetryQueryTracesResponse as TelemetryQueryTracesResponse,
552700
type TelemetryGetSpanTreeParams as TelemetryGetSpanTreeParams,
553701
type TelemetryLogEventParams as TelemetryLogEventParams,
702+
type TelemetryQueryMetricsParams as TelemetryQueryMetricsParams,
554703
type TelemetryQuerySpansParams as TelemetryQuerySpansParams,
555704
type TelemetryQueryTracesParams as TelemetryQueryTracesParams,
556705
type TelemetrySaveSpansToDatasetParams as TelemetrySaveSpansToDatasetParams,

0 commit comments

Comments
 (0)