@arizeai/phoenix-client
Version:
A client for the Phoenix API
77 lines (75 loc) • 2.58 kB
TypeScript
import { operations } from "../__generated__/api/v1.js";
import { ClientFn } from "../types/core.js";
import { ProjectSelector } from "../types/projects.js";
/**
* Parameters to get spans from a project using auto-generated types
*/
export interface GetSpansParams extends ClientFn {
/** The project to get spans from */
project: ProjectSelector;
/** Inclusive lower bound time. Must be a valid ISO 8601 string or Date object. */
startTime?: Date | string | null;
/** Exclusive upper bound time. Must be a valid ISO 8601 string or Date object. */
endTime?: Date | string | null;
/** Pagination cursor (Span Global ID) */
cursor?: string | null;
/** Maximum number of spans to return */
limit?: number;
}
export type GetSpansResponse = operations["getSpans"]["responses"]["200"];
export type GetSpansResult = {
spans: GetSpansResponse["content"]["application/json"]["data"];
nextCursor: GetSpansResponse["content"]["application/json"]["next_cursor"];
};
/**
* Get spans from a project with filtering criteria.
*
* This method allows you to search for spans within a project using various filters
* such as time range and supports cursor-based pagination.
* The spans are returned in Phoenix's standard format with human-readable timestamps
* and simplified attribute structures.
*
* @experimental this function is experimental and may change in the future
*
* @param params - The parameters to search for spans
* @returns A paginated response containing spans and optional next cursor
*
* @example
* ```ts
* // Get recent spans from a project
* const result = await getSpans({
* client,
* project: { projectName: "my-project" },
* limit: 50
* });
*
* // Get spans in a time range
* const result = await getSpans({
* client,
* project: { projectName: "my-project" },
* startTime: new Date("2024-01-01"),
* endTime: new Date("2024-01-02"),
* limit: 100
* });
*
* // Paginate through results
* let cursor: string | undefined;
* do {
* const result = await getSpans({
* client,
* project: { projectName: "my-project" },
* cursor,
* limit: 100
* });
*
* // Process spans
* result.spans.forEach(span => {
* console.log(`Span: ${span.name}, Trace: ${span.context.trace_id}`);
* });
*
* cursor = result.nextCursor || undefined;
* } while (cursor);
* ```
*/
export declare function getSpans({ client: _client, project, cursor, limit, startTime, endTime, }: GetSpansParams): Promise<GetSpansResult>;
//# sourceMappingURL=getSpans.d.ts.map