UNPKG

@arizeai/phoenix-client

Version:

A client for the Phoenix API

89 lines (87 loc) 2.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSpans = getSpans; const client_1 = require("../client"); /** * 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); * ``` */ async function getSpans({ client: _client, project, cursor, limit = 100, startTime, endTime, }) { var _a, _b; const client = _client !== null && _client !== void 0 ? _client : (0, client_1.createClient)(); const projectIdentifier = "projectId" in project ? project.projectId : project.projectName; const params = { limit, }; if (cursor) { params.cursor = cursor; } if (startTime) { params.start_time = startTime instanceof Date ? startTime.toISOString() : startTime; } if (endTime) { params.end_time = endTime instanceof Date ? endTime.toISOString() : endTime; } const { data, error } = await client.GET("/v1/projects/{project_identifier}/spans", { params: { path: { project_identifier: projectIdentifier, }, query: params, }, }); if (error) throw error; return { spans: (_a = data === null || data === void 0 ? void 0 : data.data) !== null && _a !== void 0 ? _a : [], nextCursor: (_b = data === null || data === void 0 ? void 0 : data.next_cursor) !== null && _b !== void 0 ? _b : null, }; } //# sourceMappingURL=getSpans.js.map