From c238e3ac7c287c4ce50dbee7f4710c6878cd0e44 Mon Sep 17 00:00:00 2001 From: visargD Date: Tue, 24 Sep 2024 20:48:41 +0530 Subject: [PATCH 1/8] feat: add spec for analytics apis --- openapi.yaml | 1689 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1689 insertions(+) diff --git a/openapi.yaml b/openapi.yaml index 4ed840a8..a5c0da8c 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -57,6 +57,15 @@ tags: description: Create, List, Retrieve, Update, and Delete your Portkey Api keys. - name: Logs Export description: Exports logs service . + - name: Analytics + description: Get analytics over different data points + - name: Analytics > Graphs + description: Get data points for graphical representation. + - name: Analytics > Summary + description: Get overall summary for the selected time bucket. + - name: Analytics > Groups + description: Get grouped list for the selected time bucket. + x-codeSamples: false paths: # Note: When adding an endpoint, make sure you also add it in the `groups` section, in the end of this file, @@ -9460,12 +9469,1692 @@ paths: type: object example: {} + /analytics/graphs/requests: + get: + tags: + - Analytics > Graphs + summary: Get requests graph + parameters: + - $ref: '#/components/parameters/TimeOfGenerationMin' + - $ref: '#/components/parameters/TimeOfGenerationMax' + - $ref: '#/components/parameters/TotalUnitsMin' + - $ref: '#/components/parameters/TotalUnitsMax' + - $ref: '#/components/parameters/CostMin' + - $ref: '#/components/parameters/CostMax' + - $ref: '#/components/parameters/PromptTokenMin' + - $ref: '#/components/parameters/PromptTokenMax' + - $ref: '#/components/parameters/CompletionTokenMin' + - $ref: '#/components/parameters/CompletionTokenMax' + - $ref: '#/components/parameters/StatusCode' + - $ref: '#/components/parameters/WeightedFeedbackMin' + - $ref: '#/components/parameters/WeightedFeedbackMax' + - $ref: '#/components/parameters/VirtualKeys' + - $ref: '#/components/parameters/Configs' + - $ref: '#/components/parameters/WorkspaceSlug' + - $ref: '#/components/parameters/ApiKeyIds' + responses: + '200': + description: OK + headers: + Content-Type: + schema: + type: string + example: application/json + content: + application/json: + schema: + type: object + properties: + summary: + type: object + properties: + total: + type: integer + description: Total requests across all data points + required: + - total + data_points: + type: array + items: + type: object + properties: + timestamp: + type: string + format: date-time + description: The timestamp for the data point bucket + total: + type: integer + description: Total requests for this data point bucket + required: + - timestamp + - total + description: An array of data points, each with a timestamp and metrics + object: + type: string + description: The type of object being returned + enum: [analytics-graph] + required: + - summary + - data_points + - object + + /analytics/graphs/cost: + get: + tags: + - Analytics > Graphs + summary: Get cost graph + parameters: + - $ref: '#/components/parameters/TimeOfGenerationMin' + - $ref: '#/components/parameters/TimeOfGenerationMax' + - $ref: '#/components/parameters/TotalUnitsMin' + - $ref: '#/components/parameters/TotalUnitsMax' + - $ref: '#/components/parameters/CostMin' + - $ref: '#/components/parameters/CostMax' + - $ref: '#/components/parameters/PromptTokenMin' + - $ref: '#/components/parameters/PromptTokenMax' + - $ref: '#/components/parameters/CompletionTokenMin' + - $ref: '#/components/parameters/CompletionTokenMax' + - $ref: '#/components/parameters/StatusCode' + - $ref: '#/components/parameters/WeightedFeedbackMin' + - $ref: '#/components/parameters/WeightedFeedbackMax' + - $ref: '#/components/parameters/VirtualKeys' + - $ref: '#/components/parameters/Configs' + - $ref: '#/components/parameters/WorkspaceSlug' + - $ref: '#/components/parameters/ApiKeyIds' + responses: + '200': + description: OK + headers: + Content-Type: + schema: + type: string + example: application/json + content: + application/json: + schema: + type: object + properties: + summary: + type: object + properties: + total: + type: integer + description: Total cost in cents across all data points + avg: + type: integer + description: Average cost per request across all data points + required: + - total + - avg + data_points: + type: array + items: + type: object + properties: + timestamp: + type: string + format: date-time + description: The timestamp for the data point bucket + total: + type: integer + description: Total cost in cents for this data point bucket + avg: + type: integer + description: Average cost per request for this data point bucket + required: + - timestamp + - total + - avg + description: An array of data points, each with a timestamp and metrics + object: + type: string + description: The type of object being returned + enum: [analytics-graph] + required: + - summary + - data_points + - object + + /analytics/graphs/latency: + get: + tags: + - Analytics > Graphs + summary: Get latency graph + parameters: + - $ref: '#/components/parameters/TimeOfGenerationMin' + - $ref: '#/components/parameters/TimeOfGenerationMax' + - $ref: '#/components/parameters/TotalUnitsMin' + - $ref: '#/components/parameters/TotalUnitsMax' + - $ref: '#/components/parameters/CostMin' + - $ref: '#/components/parameters/CostMax' + - $ref: '#/components/parameters/PromptTokenMin' + - $ref: '#/components/parameters/PromptTokenMax' + - $ref: '#/components/parameters/CompletionTokenMin' + - $ref: '#/components/parameters/CompletionTokenMax' + - $ref: '#/components/parameters/StatusCode' + - $ref: '#/components/parameters/WeightedFeedbackMin' + - $ref: '#/components/parameters/WeightedFeedbackMax' + - $ref: '#/components/parameters/VirtualKeys' + - $ref: '#/components/parameters/Configs' + - $ref: '#/components/parameters/WorkspaceSlug' + - $ref: '#/components/parameters/ApiKeyIds' + responses: + '200': + description: OK + headers: + Content-Type: + schema: + type: string + example: application/json + content: + application/json: + schema: + type: object + properties: + summary: + type: object + properties: + avg: + type: integer + description: Average latency in ms across all data points + p50: + type: integer + description: 50th percentile latency in ms across all data points + p90: + type: integer + description: 90th percentile latency in ms across all data points + p99: + type: integer + description: 99th percentile latency in ms across all data points + + required: + - avg + - p50 + - p90 + - p99 + data_points: + type: array + items: + type: object + properties: + timestamp: + type: string + format: date-time + description: The timestamp for the data point bucket + avg: + type: integer + description: Average latency in ms for this data point bucket + p50: + type: integer + description: 50th percentile latency in ms for this data point bucket + p90: + type: integer + description: 90th percentile latency in ms for this data point bucket + p99: + type: integer + description: 99th percentile latency in ms for this data point bucket + required: + - timestamp + - avg + - p50 + - p90 + - p99 + description: An array of data points, each with a timestamp and metrics + object: + type: string + description: The type of object being returned + enum: [analytics-graph] + required: + - summary + - data_points + - object + + /analytics/graphs/tokens: + get: + tags: + - Analytics > Graphs + summary: Get tokens graph + parameters: + - $ref: '#/components/parameters/TimeOfGenerationMin' + - $ref: '#/components/parameters/TimeOfGenerationMax' + - $ref: '#/components/parameters/TotalUnitsMin' + - $ref: '#/components/parameters/TotalUnitsMax' + - $ref: '#/components/parameters/CostMin' + - $ref: '#/components/parameters/CostMax' + - $ref: '#/components/parameters/PromptTokenMin' + - $ref: '#/components/parameters/PromptTokenMax' + - $ref: '#/components/parameters/CompletionTokenMin' + - $ref: '#/components/parameters/CompletionTokenMax' + - $ref: '#/components/parameters/StatusCode' + - $ref: '#/components/parameters/WeightedFeedbackMin' + - $ref: '#/components/parameters/WeightedFeedbackMax' + - $ref: '#/components/parameters/VirtualKeys' + - $ref: '#/components/parameters/Configs' + - $ref: '#/components/parameters/WorkspaceSlug' + - $ref: '#/components/parameters/ApiKeyIds' + responses: + '200': + description: OK + headers: + Content-Type: + schema: + type: string + example: application/json + content: + application/json: + schema: + type: object + properties: + summary: + type: object + properties: + total: + type: integer + description: Total tokens across all data points + avg: + type: integer + description: Average tokens per request across all data points + required: + - total + - avg + data_points: + type: array + items: + type: object + properties: + timestamp: + type: string + format: date-time + description: The timestamp for the data point bucket + total: + type: integer + description: Total tokens for this data point bucket + avg: + type: integer + description: Average tokens per request for this data point bucket + required: + - timestamp + - avg + - total + description: An array of data points, each with a timestamp and metrics + object: + type: string + description: The type of object being returned + enum: [analytics-graph] + required: + - summary + - data_points + - object + + /analytics/graphs/users: + get: + tags: + - Analytics > Graphs + summary: Get users graph. Returns unique user count across different time buckets + parameters: + - $ref: '#/components/parameters/TimeOfGenerationMin' + - $ref: '#/components/parameters/TimeOfGenerationMax' + - $ref: '#/components/parameters/TotalUnitsMin' + - $ref: '#/components/parameters/TotalUnitsMax' + - $ref: '#/components/parameters/CostMin' + - $ref: '#/components/parameters/CostMax' + - $ref: '#/components/parameters/PromptTokenMin' + - $ref: '#/components/parameters/PromptTokenMax' + - $ref: '#/components/parameters/CompletionTokenMin' + - $ref: '#/components/parameters/CompletionTokenMax' + - $ref: '#/components/parameters/StatusCode' + - $ref: '#/components/parameters/WeightedFeedbackMin' + - $ref: '#/components/parameters/WeightedFeedbackMax' + - $ref: '#/components/parameters/VirtualKeys' + - $ref: '#/components/parameters/Configs' + - $ref: '#/components/parameters/WorkspaceSlug' + - $ref: '#/components/parameters/ApiKeyIds' + responses: + '200': + description: OK + headers: + Content-Type: + schema: + type: string + example: application/json + content: + application/json: + schema: + type: object + properties: + summary: + type: object + properties: + total: + type: integer + description: Total unique users across all data points + required: + - total + data_points: + type: array + items: + type: object + properties: + timestamp: + type: string + format: date-time + description: The timestamp for the data point bucket + total: + type: integer + description: Total unique users for this data point bucket + required: + - timestamp + - total + description: An array of data points, each with a timestamp and metrics + object: + type: string + description: The type of object being returned + enum: [analytics-graph] + required: + - summary + - data_points + - object + + /analytics/graphs/users/requests: + get: + tags: + - Analytics > Graphs + summary: Get users requests graph. Returns average requests per user across different time buckets + parameters: + - $ref: '#/components/parameters/TimeOfGenerationMin' + - $ref: '#/components/parameters/TimeOfGenerationMax' + - $ref: '#/components/parameters/TotalUnitsMin' + - $ref: '#/components/parameters/TotalUnitsMax' + - $ref: '#/components/parameters/CostMin' + - $ref: '#/components/parameters/CostMax' + - $ref: '#/components/parameters/PromptTokenMin' + - $ref: '#/components/parameters/PromptTokenMax' + - $ref: '#/components/parameters/CompletionTokenMin' + - $ref: '#/components/parameters/CompletionTokenMax' + - $ref: '#/components/parameters/StatusCode' + - $ref: '#/components/parameters/WeightedFeedbackMin' + - $ref: '#/components/parameters/WeightedFeedbackMax' + - $ref: '#/components/parameters/VirtualKeys' + - $ref: '#/components/parameters/Configs' + - $ref: '#/components/parameters/WorkspaceSlug' + - $ref: '#/components/parameters/ApiKeyIds' + responses: + '200': + description: OK + headers: + Content-Type: + schema: + type: string + example: application/json + content: + application/json: + schema: + type: object + properties: + summary: + type: object + properties: + total: + type: integer + description: Total requests across all data points + unique: + type: integer + description: Total unique users across all data points + avg: + type: integer + description: Average requests per user across all data points + required: + - total + - unique + - avg + data_points: + type: array + items: + type: object + properties: + timestamp: + type: string + format: date-time + description: The timestamp for the data point bucket + avg: + type: integer + description: Average requests per user for this data point bucket + required: + - timestamp + - avg + description: An array of data points, each with a timestamp and metrics + object: + type: string + description: The type of object being returned + enum: [analytics-graph] + required: + - summary + - data_points + - object + + /analytics/graphs/errors: + get: + tags: + - Analytics > Graphs + summary: Get errors graph + parameters: + - $ref: '#/components/parameters/TimeOfGenerationMin' + - $ref: '#/components/parameters/TimeOfGenerationMax' + - $ref: '#/components/parameters/TotalUnitsMin' + - $ref: '#/components/parameters/TotalUnitsMax' + - $ref: '#/components/parameters/CostMin' + - $ref: '#/components/parameters/CostMax' + - $ref: '#/components/parameters/PromptTokenMin' + - $ref: '#/components/parameters/PromptTokenMax' + - $ref: '#/components/parameters/CompletionTokenMin' + - $ref: '#/components/parameters/CompletionTokenMax' + - $ref: '#/components/parameters/StatusCode' + - $ref: '#/components/parameters/WeightedFeedbackMin' + - $ref: '#/components/parameters/WeightedFeedbackMax' + - $ref: '#/components/parameters/VirtualKeys' + - $ref: '#/components/parameters/Configs' + - $ref: '#/components/parameters/WorkspaceSlug' + - $ref: '#/components/parameters/ApiKeyIds' + responses: + '200': + description: OK + headers: + Content-Type: + schema: + type: string + example: application/json + content: + application/json: + schema: + type: object + properties: + summary: + type: object + properties: + total: + type: integer + description: Total errors across all data points + required: + - total + data_points: + type: array + items: + type: object + properties: + timestamp: + type: string + format: date-time + description: The timestamp for the data point bucket + total: + type: integer + description: Total errors this data point bucket + required: + - timestamp + - total + description: An array of data points, each with a timestamp and metrics + object: + type: string + description: The type of object being returned + enum: [analytics-graph] + required: + - summary + - data_points + - object + + /analytics/graphs/errors/rate: + get: + tags: + - Analytics > Graphs + summary: Get percentage error rate graph + parameters: + - $ref: '#/components/parameters/TimeOfGenerationMin' + - $ref: '#/components/parameters/TimeOfGenerationMax' + - $ref: '#/components/parameters/TotalUnitsMin' + - $ref: '#/components/parameters/TotalUnitsMax' + - $ref: '#/components/parameters/CostMin' + - $ref: '#/components/parameters/CostMax' + - $ref: '#/components/parameters/PromptTokenMin' + - $ref: '#/components/parameters/PromptTokenMax' + - $ref: '#/components/parameters/CompletionTokenMin' + - $ref: '#/components/parameters/CompletionTokenMax' + - $ref: '#/components/parameters/StatusCode' + - $ref: '#/components/parameters/WeightedFeedbackMin' + - $ref: '#/components/parameters/WeightedFeedbackMax' + - $ref: '#/components/parameters/VirtualKeys' + - $ref: '#/components/parameters/Configs' + - $ref: '#/components/parameters/WorkspaceSlug' + - $ref: '#/components/parameters/ApiKeyIds' + responses: + '200': + description: OK + headers: + Content-Type: + schema: + type: string + example: application/json + content: + application/json: + schema: + type: object + properties: + summary: + type: object + properties: + rate: + type: integer + description: Percentage error rate across all data points + required: + - rate + data_points: + type: array + items: + type: object + properties: + timestamp: + type: string + format: date-time + description: The timestamp for the data point bucket + rate: + type: integer + description: Percentage error rate for this data point bucket + required: + - timestamp + - rate + description: An array of data points, each with a timestamp and metrics + object: + type: string + description: The type of object being returned + enum: [analytics-graph] + required: + - summary + - data_points + - object + + /analytics/graphs/errors/stacks: + get: + tags: + - Analytics > Graphs + summary: Get status code wise stacked error graph + parameters: + - $ref: '#/components/parameters/TimeOfGenerationMin' + - $ref: '#/components/parameters/TimeOfGenerationMax' + - $ref: '#/components/parameters/TotalUnitsMin' + - $ref: '#/components/parameters/TotalUnitsMax' + - $ref: '#/components/parameters/CostMin' + - $ref: '#/components/parameters/CostMax' + - $ref: '#/components/parameters/PromptTokenMin' + - $ref: '#/components/parameters/PromptTokenMax' + - $ref: '#/components/parameters/CompletionTokenMin' + - $ref: '#/components/parameters/CompletionTokenMax' + - $ref: '#/components/parameters/StatusCode' + - $ref: '#/components/parameters/WeightedFeedbackMin' + - $ref: '#/components/parameters/WeightedFeedbackMax' + - $ref: '#/components/parameters/VirtualKeys' + - $ref: '#/components/parameters/Configs' + - $ref: '#/components/parameters/WorkspaceSlug' + - $ref: '#/components/parameters/ApiKeyIds' + responses: + '200': + description: OK + headers: + Content-Type: + schema: + type: string + example: application/json + content: + application/json: + schema: + type: object + properties: + summary: + type: object + properties: + total: + type: integer + description: Total errors across all data points + required: + - total + data_points: + type: array + items: + type: object + properties: + timestamp: + type: string + format: date-time + description: The timestamp for the data point bucket + stats: + type: array + items: + type: object + properties: + response_status_code: + type: integer + description: Response status code + count: + type: integer + description: Total occurences of this response status code + required: + - timestamp + - stats + description: An array of data points, each with a timestamp and metrics + object: + type: string + description: The type of object being returned + enum: [analytics-graph] + required: + - summary + - data_points + - object + + /analytics/graphs/errors/status-codes: + get: + tags: + - Analytics > Graphs + summary: Get status code wise grouped error graph. + parameters: + - $ref: '#/components/parameters/TimeOfGenerationMin' + - $ref: '#/components/parameters/TimeOfGenerationMax' + - $ref: '#/components/parameters/TotalUnitsMin' + - $ref: '#/components/parameters/TotalUnitsMax' + - $ref: '#/components/parameters/CostMin' + - $ref: '#/components/parameters/CostMax' + - $ref: '#/components/parameters/PromptTokenMin' + - $ref: '#/components/parameters/PromptTokenMax' + - $ref: '#/components/parameters/CompletionTokenMin' + - $ref: '#/components/parameters/CompletionTokenMax' + - $ref: '#/components/parameters/StatusCode' + - $ref: '#/components/parameters/WeightedFeedbackMin' + - $ref: '#/components/parameters/WeightedFeedbackMax' + - $ref: '#/components/parameters/VirtualKeys' + - $ref: '#/components/parameters/Configs' + - $ref: '#/components/parameters/WorkspaceSlug' + - $ref: '#/components/parameters/ApiKeyIds' + responses: + '200': + description: OK + headers: + Content-Type: + schema: + type: string + example: application/json + content: + application/json: + schema: + type: object + properties: + summary: + type: object + properties: + total_errors: + type: integer + description: Total errors across all data points + unique_error_codes: + type: integer + description: Unique error codes across all data points + required: + - total_errors + - unique_error_codes + data_points: + type: array + items: + type: object + properties: + status_code: + type: integer + description: Response status code + count: + type: integer + description: Occurences of this response status code + required: + - status_code + - count + description: An array of data points, each with a timestamp and metrics + object: + type: string + description: The type of object being returned + enum: [analytics-graph] + required: + - summary + - data_points + - object + + /analytics/graphs/requests/rescued: + get: + tags: + - Analytics > Graphs + summary: Get retry and fallback rescued requests graph + parameters: + - $ref: '#/components/parameters/TimeOfGenerationMin' + - $ref: '#/components/parameters/TimeOfGenerationMax' + - $ref: '#/components/parameters/TotalUnitsMin' + - $ref: '#/components/parameters/TotalUnitsMax' + - $ref: '#/components/parameters/CostMin' + - $ref: '#/components/parameters/CostMax' + - $ref: '#/components/parameters/PromptTokenMin' + - $ref: '#/components/parameters/PromptTokenMax' + - $ref: '#/components/parameters/CompletionTokenMin' + - $ref: '#/components/parameters/CompletionTokenMax' + - $ref: '#/components/parameters/StatusCode' + - $ref: '#/components/parameters/WeightedFeedbackMin' + - $ref: '#/components/parameters/WeightedFeedbackMax' + - $ref: '#/components/parameters/VirtualKeys' + - $ref: '#/components/parameters/Configs' + - $ref: '#/components/parameters/WorkspaceSlug' + - $ref: '#/components/parameters/ApiKeyIds' + responses: + '200': + description: OK + headers: + Content-Type: + schema: + type: string + example: application/json + content: + application/json: + schema: + type: object + properties: + summary: + type: object + properties: + retry: + type: integer + description: Total requests rescued using retries across all data points + fallback: + type: integer + description: Total requests rescued using fallback across all data points + required: + - retry + - fallback + data_points: + type: array + items: + type: object + properties: + timestamp: + type: string + format: date-time + description: The timestamp for the data point bucket + retry: + type: array + items: + type: object + properties: + retry_success_count: + type: integer + description: "Retry attempt count at which the request was rescued" + count: + type: integer + description: "Total requests rescued at this retry attempt" + fallback: + type: integer + description: Total requests rescued using fallback for this data point bucket + required: + - timestamp + - retry + - fallback + description: An array of data points, each with a timestamp and metrics + object: + type: string + description: The type of object being returned + enum: [analytics-graph] + required: + - summary + - data_points + - object + + /analytics/graphs/cache/hit-rate: + get: + tags: + - Analytics > Graphs + summary: Get cache hit rate graph + parameters: + - $ref: '#/components/parameters/TimeOfGenerationMin' + - $ref: '#/components/parameters/TimeOfGenerationMax' + - $ref: '#/components/parameters/TotalUnitsMin' + - $ref: '#/components/parameters/TotalUnitsMax' + - $ref: '#/components/parameters/CostMin' + - $ref: '#/components/parameters/CostMax' + - $ref: '#/components/parameters/PromptTokenMin' + - $ref: '#/components/parameters/PromptTokenMax' + - $ref: '#/components/parameters/CompletionTokenMin' + - $ref: '#/components/parameters/CompletionTokenMax' + - $ref: '#/components/parameters/StatusCode' + - $ref: '#/components/parameters/WeightedFeedbackMin' + - $ref: '#/components/parameters/WeightedFeedbackMax' + - $ref: '#/components/parameters/VirtualKeys' + - $ref: '#/components/parameters/Configs' + - $ref: '#/components/parameters/WorkspaceSlug' + - $ref: '#/components/parameters/ApiKeyIds' + responses: + '200': + description: OK + headers: + Content-Type: + schema: + type: string + example: application/json + content: + application/json: + schema: + type: object + properties: + summary: + type: object + properties: + total: + type: integer + description: Total cache hits across all data points + rate: + type: integer + description: Percentage cache hit rate across all data points + required: + - total + - rate + data_points: + type: array + items: + type: object + properties: + timestamp: + type: string + format: date-time + description: The timestamp for the data point bucket + simple_hits: + type: integer + description: Total simple cache hits for this data point bucket + semantic_hits: + type: integer + description: Total semantic cache hits for this data point bucket + rate: + type: integer + description: Percentage cache hit rate for this data point bucket + cumulative_simple_cache_savings: + type: integer + description: Cumulative simple cache cost savings in cents based on all previous data point buckets and this bucket + cumulative_semantic_cache_savings: + type: integer + description: Cumulative semantic cache cost savings in cents based on all previous data point buckets and this bucket + required: + - timestamp + - simple_hits + - semantic_hits + - rate + - cumulative_simple_cache_savings + - cumulative_semantic_cache_savings + description: An array of data points, each with a timestamp and metrics + object: + type: string + description: The type of object being returned + enum: [analytics-graph] + required: + - summary + - data_points + - object + + /analytics/graphs/cache/latency: + get: + tags: + - Analytics > Graphs + summary: Get cache hit latency graph + parameters: + - $ref: '#/components/parameters/TimeOfGenerationMin' + - $ref: '#/components/parameters/TimeOfGenerationMax' + - $ref: '#/components/parameters/TotalUnitsMin' + - $ref: '#/components/parameters/TotalUnitsMax' + - $ref: '#/components/parameters/CostMin' + - $ref: '#/components/parameters/CostMax' + - $ref: '#/components/parameters/PromptTokenMin' + - $ref: '#/components/parameters/PromptTokenMax' + - $ref: '#/components/parameters/CompletionTokenMin' + - $ref: '#/components/parameters/CompletionTokenMax' + - $ref: '#/components/parameters/StatusCode' + - $ref: '#/components/parameters/WeightedFeedbackMin' + - $ref: '#/components/parameters/WeightedFeedbackMax' + - $ref: '#/components/parameters/VirtualKeys' + - $ref: '#/components/parameters/Configs' + - $ref: '#/components/parameters/WorkspaceSlug' + - $ref: '#/components/parameters/ApiKeyIds' + responses: + '200': + description: OK + headers: + Content-Type: + schema: + type: string + example: application/json + content: + application/json: + schema: + type: object + properties: + summary: + type: object + data_points: + type: array + items: + type: object + properties: + timestamp: + type: string + format: date-time + description: The timestamp for the data point bucket + avg: + type: integer + description: Average latency (in ms) for cache hit for this data point bucket + required: + - timestamp + - avg + description: An array of data points, each with a timestamp and metrics + object: + type: string + description: The type of object being returned + enum: [analytics-graph] + required: + - summary + - data_points + - object + + /analytics/graphs/feedbacks: + get: + tags: + - Analytics > Graphs + summary: Get feedbacks graph + parameters: + - $ref: '#/components/parameters/TimeOfGenerationMin' + - $ref: '#/components/parameters/TimeOfGenerationMax' + - $ref: '#/components/parameters/TotalUnitsMin' + - $ref: '#/components/parameters/TotalUnitsMax' + - $ref: '#/components/parameters/CostMin' + - $ref: '#/components/parameters/CostMax' + - $ref: '#/components/parameters/PromptTokenMin' + - $ref: '#/components/parameters/PromptTokenMax' + - $ref: '#/components/parameters/CompletionTokenMin' + - $ref: '#/components/parameters/CompletionTokenMax' + - $ref: '#/components/parameters/StatusCode' + - $ref: '#/components/parameters/WeightedFeedbackMin' + - $ref: '#/components/parameters/WeightedFeedbackMax' + - $ref: '#/components/parameters/VirtualKeys' + - $ref: '#/components/parameters/Configs' + - $ref: '#/components/parameters/WorkspaceSlug' + - $ref: '#/components/parameters/ApiKeyIds' + responses: + '200': + description: OK + headers: + Content-Type: + schema: + type: string + example: application/json + content: + application/json: + schema: + type: object + properties: + summary: + type: object + properties: + total: + type: integer + description: Total feedbacks across all data points + required: + - total + data_points: + type: array + items: + type: object + properties: + timestamp: + type: string + format: date-time + description: The timestamp for the data point bucket + total: + type: integer + description: Total feedbacks for this data point bucket + required: + - timestamp + - total + description: An array of data points, each with a timestamp and metrics + object: + type: string + description: The type of object being returned + enum: [analytics-graph] + required: + - summary + - data_points + - object + + /analytics/graphs/feedbacks/scores: + get: + tags: + - Analytics > Graphs + summary: Get score-wise feedbacks distribution graph + parameters: + - $ref: '#/components/parameters/TimeOfGenerationMin' + - $ref: '#/components/parameters/TimeOfGenerationMax' + - $ref: '#/components/parameters/TotalUnitsMin' + - $ref: '#/components/parameters/TotalUnitsMax' + - $ref: '#/components/parameters/CostMin' + - $ref: '#/components/parameters/CostMax' + - $ref: '#/components/parameters/PromptTokenMin' + - $ref: '#/components/parameters/PromptTokenMax' + - $ref: '#/components/parameters/CompletionTokenMin' + - $ref: '#/components/parameters/CompletionTokenMax' + - $ref: '#/components/parameters/StatusCode' + - $ref: '#/components/parameters/WeightedFeedbackMin' + - $ref: '#/components/parameters/WeightedFeedbackMax' + - $ref: '#/components/parameters/VirtualKeys' + - $ref: '#/components/parameters/Configs' + - $ref: '#/components/parameters/WorkspaceSlug' + - $ref: '#/components/parameters/ApiKeyIds' + responses: + '200': + description: OK + headers: + Content-Type: + schema: + type: string + example: application/json + content: + application/json: + schema: + type: object + properties: + summary: + type: object + properties: + total: + type: integer + description: Total feedbacks across all data points + required: + - total + data_points: + type: array + items: + type: object + properties: + score: + type: integer + description: Feedback value for which total is calculated + total: + type: integer + description: Total feedbacks for this feedback score + required: + - score + - total + description: An array of data points, each with a timestamp and metrics + object: + type: string + description: The type of object being returned + enum: [analytics-graph] + required: + - summary + - data_points + - object + + /analytics/graphs/feedbacks/weighted: + get: + tags: + - Analytics > Graphs + summary: Get weighted feedbacks graph. Weighted feedback is (value * score) + parameters: + - $ref: '#/components/parameters/TimeOfGenerationMin' + - $ref: '#/components/parameters/TimeOfGenerationMax' + - $ref: '#/components/parameters/TotalUnitsMin' + - $ref: '#/components/parameters/TotalUnitsMax' + - $ref: '#/components/parameters/CostMin' + - $ref: '#/components/parameters/CostMax' + - $ref: '#/components/parameters/PromptTokenMin' + - $ref: '#/components/parameters/PromptTokenMax' + - $ref: '#/components/parameters/CompletionTokenMin' + - $ref: '#/components/parameters/CompletionTokenMax' + - $ref: '#/components/parameters/StatusCode' + - $ref: '#/components/parameters/WeightedFeedbackMin' + - $ref: '#/components/parameters/WeightedFeedbackMax' + - $ref: '#/components/parameters/VirtualKeys' + - $ref: '#/components/parameters/Configs' + - $ref: '#/components/parameters/WorkspaceSlug' + - $ref: '#/components/parameters/ApiKeyIds' + responses: + '200': + description: OK + headers: + Content-Type: + schema: + type: string + example: application/json + content: + application/json: + schema: + type: object + properties: + summary: + type: object + properties: + avg: + type: integer + description: Average weighted feedback across all data points + required: + - avg + data_points: + type: array + items: + type: object + properties: + timestamp: + type: string + format: date-time + description: The timestamp for the data point bucket + avg: + type: integer + description: Average weighted feedback for this data point bucket + required: + - timestamp + - avg + description: An array of data points, each with a timestamp and metrics + object: + type: string + description: The type of object being returned + enum: [analytics-graph] + required: + - summary + - data_points + - object + + /analytics/graphs/feedbacks/ai-models: + get: + tags: + - Analytics > Graphs + summary: Get feedbacks per ai_models graph + parameters: + - $ref: '#/components/parameters/TimeOfGenerationMin' + - $ref: '#/components/parameters/TimeOfGenerationMax' + - $ref: '#/components/parameters/TotalUnitsMin' + - $ref: '#/components/parameters/TotalUnitsMax' + - $ref: '#/components/parameters/CostMin' + - $ref: '#/components/parameters/CostMax' + - $ref: '#/components/parameters/PromptTokenMin' + - $ref: '#/components/parameters/PromptTokenMax' + - $ref: '#/components/parameters/CompletionTokenMin' + - $ref: '#/components/parameters/CompletionTokenMax' + - $ref: '#/components/parameters/StatusCode' + - $ref: '#/components/parameters/WeightedFeedbackMin' + - $ref: '#/components/parameters/WeightedFeedbackMax' + - $ref: '#/components/parameters/VirtualKeys' + - $ref: '#/components/parameters/Configs' + - $ref: '#/components/parameters/WorkspaceSlug' + - $ref: '#/components/parameters/ApiKeyIds' + responses: + '200': + description: OK + headers: + Content-Type: + schema: + type: string + example: application/json + content: + application/json: + schema: + type: object + properties: + summary: + type: object + data_points: + type: array + items: + type: object + properties: + ai_model: + type: string + description: AI model for which feedback data is calculated + total: + type: integer + description: Total feedbacks for this ai_model requests + avg_weighted_feedback: + type: integer + description: Average weighted feedback for this ai_model requests + required: + - ai_model + - total + - avg_weighted_feedback + description: An array of data points, each with a timestamp and metrics + object: + type: string + description: The type of object being returned + enum: [analytics-graph] + required: + - summary + - data_points + - object + + /analytics/summary/cache: + get: + tags: + - Analytics > Summary + summary: Get cache summary data for the selected time period + parameters: + - $ref: '#/components/parameters/TimeOfGenerationMin' + - $ref: '#/components/parameters/TimeOfGenerationMax' + - $ref: '#/components/parameters/TotalUnitsMin' + - $ref: '#/components/parameters/TotalUnitsMax' + - $ref: '#/components/parameters/CostMin' + - $ref: '#/components/parameters/CostMax' + - $ref: '#/components/parameters/PromptTokenMin' + - $ref: '#/components/parameters/PromptTokenMax' + - $ref: '#/components/parameters/CompletionTokenMin' + - $ref: '#/components/parameters/CompletionTokenMax' + - $ref: '#/components/parameters/StatusCode' + - $ref: '#/components/parameters/WeightedFeedbackMin' + - $ref: '#/components/parameters/WeightedFeedbackMax' + - $ref: '#/components/parameters/VirtualKeys' + - $ref: '#/components/parameters/Configs' + - $ref: '#/components/parameters/WorkspaceSlug' + - $ref: '#/components/parameters/ApiKeyIds' + responses: + '200': + description: OK + headers: + Content-Type: + schema: + type: string + example: application/json + content: + application/json: + schema: + type: object + properties: + summary: + type: object + properties: + hits: + type: integer + description: Total cache hits + avg_latency: + type: integer + description: Average latency for a cache hit + total_requests: + type: integer + description: Total requests + cache_speedup: + type: integer + description: Percentage speedup for cache hits compared to non cache hit requests + object: + type: string + description: The type of object being returned + enum: [analytics-summary] + required: + - summary + - object + + /analytics/groups/users: + get: + tags: + - Analytics > Groups + summary: Get metadata users grouped data. + parameters: + - $ref: '#/components/parameters/TimeOfGenerationMin' + - $ref: '#/components/parameters/TimeOfGenerationMax' + - $ref: '#/components/parameters/TotalUnitsMin' + - $ref: '#/components/parameters/TotalUnitsMax' + - $ref: '#/components/parameters/CostMin' + - $ref: '#/components/parameters/CostMax' + - $ref: '#/components/parameters/PromptTokenMin' + - $ref: '#/components/parameters/PromptTokenMax' + - $ref: '#/components/parameters/CompletionTokenMin' + - $ref: '#/components/parameters/CompletionTokenMax' + - $ref: '#/components/parameters/StatusCode' + - $ref: '#/components/parameters/WeightedFeedbackMin' + - $ref: '#/components/parameters/WeightedFeedbackMax' + - $ref: '#/components/parameters/VirtualKeys' + - $ref: '#/components/parameters/Configs' + - $ref: '#/components/parameters/WorkspaceSlug' + - $ref: '#/components/parameters/ApiKeyIds' + - $ref: '#/components/parameters/CurrentPage' + - $ref: '#/components/parameters/PageSize' + responses: + '200': + description: OK + headers: + Content-Type: + schema: + type: string + example: application/json + content: + application/json: + schema: + type: object + properties: + object: + type: string + enum: [list] + total: + type: integer + description: Total records present across all pages + data: + type: array + items: + type: object + properties: + user: + type: string + description: The user for which the data is calculated + requests: + type: string + description: Total requests made by this user + cost: + type: string + description: Total cost in cents for the requests made by this user + object: + type: string + description: The type of object being returned + enum: [analytics-group] + required: + - total + - object + - data + + /analytics/groups/ai-models: + get: + tags: + - Analytics > Groups + summary: Get ai model grouped data. + parameters: + - $ref: '#/components/parameters/TimeOfGenerationMin' + - $ref: '#/components/parameters/TimeOfGenerationMax' + - $ref: '#/components/parameters/TotalUnitsMin' + - $ref: '#/components/parameters/TotalUnitsMax' + - $ref: '#/components/parameters/CostMin' + - $ref: '#/components/parameters/CostMax' + - $ref: '#/components/parameters/PromptTokenMin' + - $ref: '#/components/parameters/PromptTokenMax' + - $ref: '#/components/parameters/CompletionTokenMin' + - $ref: '#/components/parameters/CompletionTokenMax' + - $ref: '#/components/parameters/StatusCode' + - $ref: '#/components/parameters/WeightedFeedbackMin' + - $ref: '#/components/parameters/WeightedFeedbackMax' + - $ref: '#/components/parameters/VirtualKeys' + - $ref: '#/components/parameters/Configs' + - $ref: '#/components/parameters/WorkspaceSlug' + - $ref: '#/components/parameters/ApiKeyIds' + - $ref: '#/components/parameters/CurrentPage' + - $ref: '#/components/parameters/PageSize' + responses: + '200': + description: OK + headers: + Content-Type: + schema: + type: string + example: application/json + content: + application/json: + schema: + type: object + properties: + object: + type: string + enum: [list] + total: + type: integer + description: Total records present across all pages + data: + type: array + items: + type: object + properties: + ai_model: + type: string + description: The ai model for which the data is calculated + requests: + type: string + description: Total requests made for this ai model + object: + type: string + description: The type of object being returned + enum: [analytics-group] + required: + - total + - object + - data + + /analytics/groups/metadata/{metadataKey}: + get: + tags: + - Analytics > Groups + summary: Get metadata key based grouped data. + parameters: + - name: metadataKey + in: path + schema: + type: string + required: true + - $ref: '#/components/parameters/TimeOfGenerationMin' + - $ref: '#/components/parameters/TimeOfGenerationMax' + - $ref: '#/components/parameters/TotalUnitsMin' + - $ref: '#/components/parameters/TotalUnitsMax' + - $ref: '#/components/parameters/CostMin' + - $ref: '#/components/parameters/CostMax' + - $ref: '#/components/parameters/PromptTokenMin' + - $ref: '#/components/parameters/PromptTokenMax' + - $ref: '#/components/parameters/CompletionTokenMin' + - $ref: '#/components/parameters/CompletionTokenMax' + - $ref: '#/components/parameters/StatusCode' + - $ref: '#/components/parameters/WeightedFeedbackMin' + - $ref: '#/components/parameters/WeightedFeedbackMax' + - $ref: '#/components/parameters/VirtualKeys' + - $ref: '#/components/parameters/Configs' + - $ref: '#/components/parameters/WorkspaceSlug' + - $ref: '#/components/parameters/ApiKeyIds' + - $ref: '#/components/parameters/CurrentPage' + - $ref: '#/components/parameters/PageSize' + responses: + '200': + description: OK + headers: + Content-Type: + schema: + type: string + example: application/json + content: + application/json: + schema: + type: object + properties: + object: + type: string + enum: [list] + total: + type: integer + description: Total records present across all pages + data: + type: array + items: + type: object + properties: + metadata_value: + type: string + description: Value of the metadata on which grouping has been done + requests: + type: integer + description: Total requests made with this metadata + cost: + type: integer + description: Total cost for all requests made with this metadata + avg_tokens: + type: integer + description: Average tokens per request for all requests made with this metadata + avg_weighted_feedback: + type: integer + description: Average weighted feedback for all requests made with this metadata + requests_with_feedback: + type: integer + description: Total requests with feedback + last_seen: + type: string + format: date-time + description: The last seen timestamp for this metadata + object: + type: string + description: The type of object being returned + enum: [analytics-group] + required: + - total + - object + - data + components: securitySchemes: ApiKeyAuth: type: apiKey in: header name: x-portkey-api-key + + parameters: + TimeOfGenerationMin: + in: query + name: time_of_generation_min + required: true + schema: + type: string + format: date-time + description: Minimum time of generation (ISO8601 format) + TimeOfGenerationMax: + in: query + name: time_of_generation_max + required: true + schema: + type: string + format: date-time + description: Maximum time of generation (ISO8601 format) + TotalUnitsMin: + in: query + name: total_units_min + schema: + type: integer + minimum: 0 + description: Minimum total units + TotalUnitsMax: + in: query + name: total_units_max + schema: + type: integer + minimum: 0 + description: Maximum total units + CostMin: + in: query + name: cost_min + schema: + type: number + minimum: 0 + description: Minimum cost + CostMax: + in: query + name: cost_max + schema: + type: number + minimum: 0 + description: Maximum cost + PromptTokenMin: + in: query + name: prompt_token_min + schema: + type: integer + minimum: 0 + description: Minimum number of prompt tokens + PromptTokenMax: + in: query + name: prompt_token_max + schema: + type: integer + minimum: 0 + description: Maximum number of prompt tokens + CompletionTokenMin: + in: query + name: completion_token_min + schema: + type: integer + minimum: 0 + description: Minimum number of completion tokens + CompletionTokenMax: + in: query + name: completion_token_max + schema: + type: integer + minimum: 0 + description: Maximum number of completion tokens + StatusCode: + in: query + name: status_code + schema: + type: string + description: Status code filter + PageSize: + in: query + name: page_size + schema: + type: integer + minimum: 0 + description: Number of items per page + CurrentPage: + in: query + name: current_page + schema: + type: integer + minimum: 0 + description: Current page number + WeightedFeedbackMin: + in: query + name: weighted_feedback_min + schema: + type: number + minimum: -10 + maximum: 10 + description: Minimum weighted feedback score + WeightedFeedbackMax: + in: query + name: weighted_feedback_max + schema: + type: number + minimum: -10 + maximum: 10 + description: Maximum weighted feedback score + OrderBy: + in: query + name: order_by + schema: + type: string + description: Field to order results by + OrderByType: + in: query + name: order_by_type + schema: + type: string + description: Type of ordering (e.g., asc, desc) + VirtualKeys: + in: query + name: virtual_keys + schema: + type: string + description: Virtual keys filter + Configs: + in: query + name: configs + schema: + type: string + description: Configuration filter + WorkspaceSlug: + in: query + name: workspace_slug + schema: + type: string + description: Workspace slug filter + ApiKeyIds: + in: query + name: api_key_ids + schema: + type: string + description: API key IDs filter schemas: Error: From 83e88c2f723400f8ae8f18af4fb0e8fca44dd01e Mon Sep 17 00:00:00 2001 From: visargD Date: Tue, 24 Sep 2024 21:02:06 +0530 Subject: [PATCH 2/8] chore: minor description updates for analytics api --- openapi.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index a5c0da8c..b32303f9 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -58,13 +58,13 @@ tags: - name: Logs Export description: Exports logs service . - name: Analytics - description: Get analytics over different data points + description: Get analytics over different data points like requests, costs, tokens, etc. - name: Analytics > Graphs description: Get data points for graphical representation. - name: Analytics > Summary description: Get overall summary for the selected time bucket. - name: Analytics > Groups - description: Get grouped list for the selected time bucket. + description: Get grouped metrics for the selected time bucket. x-codeSamples: false paths: From 0d3cfc9b9dd7542fc16d803d4a20a86ace621aa8 Mon Sep 17 00:00:00 2001 From: visargD Date: Tue, 24 Sep 2024 21:12:26 +0530 Subject: [PATCH 3/8] feat: add metadata filter in analytics api --- openapi.yaml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/openapi.yaml b/openapi.yaml index b32303f9..697f80f8 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -9492,6 +9492,7 @@ paths: - $ref: '#/components/parameters/Configs' - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' + - $ref: '#/components/parameters/Metadata' responses: '200': description: OK @@ -9561,6 +9562,7 @@ paths: - $ref: '#/components/parameters/Configs' - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' + - $ref: '#/components/parameters/Metadata' responses: '200': description: OK @@ -9638,6 +9640,7 @@ paths: - $ref: '#/components/parameters/Configs' - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' + - $ref: '#/components/parameters/Metadata' responses: '200': description: OK @@ -9732,6 +9735,7 @@ paths: - $ref: '#/components/parameters/Configs' - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' + - $ref: '#/components/parameters/Metadata' responses: '200': description: OK @@ -9809,6 +9813,7 @@ paths: - $ref: '#/components/parameters/Configs' - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' + - $ref: '#/components/parameters/Metadata' responses: '200': description: OK @@ -9878,6 +9883,7 @@ paths: - $ref: '#/components/parameters/Configs' - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' + - $ref: '#/components/parameters/Metadata' responses: '200': description: OK @@ -9955,6 +9961,7 @@ paths: - $ref: '#/components/parameters/Configs' - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' + - $ref: '#/components/parameters/Metadata' responses: '200': description: OK @@ -10024,6 +10031,7 @@ paths: - $ref: '#/components/parameters/Configs' - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' + - $ref: '#/components/parameters/Metadata' responses: '200': description: OK @@ -10093,6 +10101,7 @@ paths: - $ref: '#/components/parameters/Configs' - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' + - $ref: '#/components/parameters/Metadata' responses: '200': description: OK @@ -10170,6 +10179,7 @@ paths: - $ref: '#/components/parameters/Configs' - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' + - $ref: '#/components/parameters/Metadata' responses: '200': description: OK @@ -10242,6 +10252,7 @@ paths: - $ref: '#/components/parameters/Configs' - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' + - $ref: '#/components/parameters/Metadata' responses: '200': description: OK @@ -10327,6 +10338,7 @@ paths: - $ref: '#/components/parameters/Configs' - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' + - $ref: '#/components/parameters/Metadata' responses: '200': description: OK @@ -10416,6 +10428,7 @@ paths: - $ref: '#/components/parameters/Configs' - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' + - $ref: '#/components/parameters/Metadata' responses: '200': description: OK @@ -10479,6 +10492,7 @@ paths: - $ref: '#/components/parameters/Configs' - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' + - $ref: '#/components/parameters/Metadata' responses: '200': description: OK @@ -10548,6 +10562,7 @@ paths: - $ref: '#/components/parameters/Configs' - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' + - $ref: '#/components/parameters/Metadata' responses: '200': description: OK @@ -10616,6 +10631,7 @@ paths: - $ref: '#/components/parameters/Configs' - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' + - $ref: '#/components/parameters/Metadata' responses: '200': description: OK @@ -10685,6 +10701,7 @@ paths: - $ref: '#/components/parameters/Configs' - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' + - $ref: '#/components/parameters/Metadata' responses: '200': description: OK @@ -10751,6 +10768,7 @@ paths: - $ref: '#/components/parameters/Configs' - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' + - $ref: '#/components/parameters/Metadata' responses: '200': description: OK @@ -10812,6 +10830,7 @@ paths: - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/CurrentPage' - $ref: '#/components/parameters/PageSize' + - $ref: '#/components/parameters/Metadata' responses: '200': description: OK @@ -10879,6 +10898,7 @@ paths: - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/CurrentPage' - $ref: '#/components/parameters/PageSize' + - $ref: '#/components/parameters/Metadata' responses: '200': description: OK @@ -10948,6 +10968,7 @@ paths: - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/CurrentPage' - $ref: '#/components/parameters/PageSize' + - $ref: '#/components/parameters/Metadata' responses: '200': description: OK @@ -11155,6 +11176,13 @@ components: schema: type: string description: API key IDs filter + Metadata: + in: query + name: metadata + schema: + type: string + description: Stringifed json object with key value metadata pairs + example: '{"_user":"user_1", "env": "staging"}' schemas: Error: From b915ee6f682a5727cb4c1e608ef252caf47735a1 Mon Sep 17 00:00:00 2001 From: visargD Date: Tue, 24 Sep 2024 21:33:18 +0530 Subject: [PATCH 4/8] feat: add ai_org_model filter in analytics apis --- openapi.yaml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/openapi.yaml b/openapi.yaml index 697f80f8..d4260b98 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -9493,6 +9493,7 @@ paths: - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' + - $ref: '#/components/parameters/AiOrgModel' responses: '200': description: OK @@ -9563,6 +9564,7 @@ paths: - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' + - $ref: '#/components/parameters/AiOrgModel' responses: '200': description: OK @@ -9641,6 +9643,7 @@ paths: - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' + - $ref: '#/components/parameters/AiOrgModel' responses: '200': description: OK @@ -9736,6 +9739,7 @@ paths: - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' + - $ref: '#/components/parameters/AiOrgModel' responses: '200': description: OK @@ -9814,6 +9818,7 @@ paths: - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' + - $ref: '#/components/parameters/AiOrgModel' responses: '200': description: OK @@ -9884,6 +9889,7 @@ paths: - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' + - $ref: '#/components/parameters/AiOrgModel' responses: '200': description: OK @@ -9962,6 +9968,7 @@ paths: - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' + - $ref: '#/components/parameters/AiOrgModel' responses: '200': description: OK @@ -10032,6 +10039,7 @@ paths: - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' + - $ref: '#/components/parameters/AiOrgModel' responses: '200': description: OK @@ -10102,6 +10110,7 @@ paths: - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' + - $ref: '#/components/parameters/AiOrgModel' responses: '200': description: OK @@ -10180,6 +10189,7 @@ paths: - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' + - $ref: '#/components/parameters/AiOrgModel' responses: '200': description: OK @@ -10253,6 +10263,7 @@ paths: - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' + - $ref: '#/components/parameters/AiOrgModel' responses: '200': description: OK @@ -10339,6 +10350,7 @@ paths: - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' + - $ref: '#/components/parameters/AiOrgModel' responses: '200': description: OK @@ -10429,6 +10441,7 @@ paths: - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' + - $ref: '#/components/parameters/AiOrgModel' responses: '200': description: OK @@ -10493,6 +10506,7 @@ paths: - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' + - $ref: '#/components/parameters/AiOrgModel' responses: '200': description: OK @@ -10563,6 +10577,7 @@ paths: - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' + - $ref: '#/components/parameters/AiOrgModel' responses: '200': description: OK @@ -10632,6 +10647,7 @@ paths: - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' + - $ref: '#/components/parameters/AiOrgModel' responses: '200': description: OK @@ -10702,6 +10718,7 @@ paths: - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' + - $ref: '#/components/parameters/AiOrgModel' responses: '200': description: OK @@ -10769,6 +10786,7 @@ paths: - $ref: '#/components/parameters/WorkspaceSlug' - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' + - $ref: '#/components/parameters/AiOrgModel' responses: '200': description: OK @@ -10831,6 +10849,7 @@ paths: - $ref: '#/components/parameters/CurrentPage' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/Metadata' + - $ref: '#/components/parameters/AiOrgModel' responses: '200': description: OK @@ -10899,6 +10918,7 @@ paths: - $ref: '#/components/parameters/CurrentPage' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/Metadata' + - $ref: '#/components/parameters/AiOrgModel' responses: '200': description: OK @@ -10969,6 +10989,7 @@ paths: - $ref: '#/components/parameters/CurrentPage' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/Metadata' + - $ref: '#/components/parameters/AiOrgModel' responses: '200': description: OK @@ -11183,6 +11204,13 @@ components: type: string description: Stringifed json object with key value metadata pairs example: '{"_user":"user_1", "env": "staging"}' + AiOrgModel: + in: query + name: ai_org_model + schema: + type: string + description: Comma separate ai provider and model combination. Double underscore (__) should be used as a separator for each provider and model combination + example: openai__gpt-3.5-turbo,azure-openai__gpt-35-turbo schemas: Error: From ae55dbcfa704a06cff4b45d30f76ef81f79777ed Mon Sep 17 00:00:00 2001 From: visargD Date: Tue, 24 Sep 2024 21:37:12 +0530 Subject: [PATCH 5/8] chore: update description of comma separated analytics filters --- openapi.yaml | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/openapi.yaml b/openapi.yaml index d4260b98..f392d7ce 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -11075,28 +11075,28 @@ components: schema: type: integer minimum: 0 - description: Minimum total units + description: Minimum total units (tokens) TotalUnitsMax: in: query name: total_units_max schema: type: integer minimum: 0 - description: Maximum total units + description: Maximum total units (tokens) CostMin: in: query name: cost_min schema: type: number minimum: 0 - description: Minimum cost + description: Minimum cost (in cents) CostMax: in: query name: cost_max schema: type: number minimum: 0 - description: Maximum cost + description: Maximum cost (in cents) PromptTokenMin: in: query name: prompt_token_min @@ -11130,7 +11130,8 @@ components: name: status_code schema: type: string - description: Status code filter + description: Comma separated response status codes + example: 401,403 PageSize: in: query name: page_size @@ -11178,13 +11179,15 @@ components: name: virtual_keys schema: type: string - description: Virtual keys filter + description: Comma separated virtual key slugs + example: vk-slug-1,vk-slug-2 Configs: in: query name: configs schema: type: string - description: Configuration filter + description: Comma separated config slugs + example: pc-config-slug-1,pc-config-slug-2 WorkspaceSlug: in: query name: workspace_slug @@ -11196,7 +11199,8 @@ components: name: api_key_ids schema: type: string - description: API key IDs filter + description: Comma separated API key UUIDs + example: 765768a9-b4ec-4694-962c-d55f40cdb0dc,7c22af5a-8119-46b8-8d9b-bad3ad382387 Metadata: in: query name: metadata From 2fc481eef5a65d7e6ee5a33da89bd8f0c4c0f464 Mon Sep 17 00:00:00 2001 From: visargD Date: Tue, 24 Sep 2024 21:45:03 +0530 Subject: [PATCH 6/8] feat: add trace_id and span_id filters in analytics api --- openapi.yaml | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/openapi.yaml b/openapi.yaml index f392d7ce..3c411583 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -9494,6 +9494,8 @@ paths: - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' - $ref: '#/components/parameters/AiOrgModel' + - $ref: '#/components/parameters/TraceId' + - $ref: '#/components/parameters/SpanId' responses: '200': description: OK @@ -9565,6 +9567,8 @@ paths: - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' - $ref: '#/components/parameters/AiOrgModel' + - $ref: '#/components/parameters/TraceId' + - $ref: '#/components/parameters/SpanId' responses: '200': description: OK @@ -9644,6 +9648,8 @@ paths: - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' - $ref: '#/components/parameters/AiOrgModel' + - $ref: '#/components/parameters/TraceId' + - $ref: '#/components/parameters/SpanId' responses: '200': description: OK @@ -9740,6 +9746,8 @@ paths: - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' - $ref: '#/components/parameters/AiOrgModel' + - $ref: '#/components/parameters/TraceId' + - $ref: '#/components/parameters/SpanId' responses: '200': description: OK @@ -9819,6 +9827,8 @@ paths: - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' - $ref: '#/components/parameters/AiOrgModel' + - $ref: '#/components/parameters/TraceId' + - $ref: '#/components/parameters/SpanId' responses: '200': description: OK @@ -9890,6 +9900,8 @@ paths: - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' - $ref: '#/components/parameters/AiOrgModel' + - $ref: '#/components/parameters/TraceId' + - $ref: '#/components/parameters/SpanId' responses: '200': description: OK @@ -9969,6 +9981,8 @@ paths: - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' - $ref: '#/components/parameters/AiOrgModel' + - $ref: '#/components/parameters/TraceId' + - $ref: '#/components/parameters/SpanId' responses: '200': description: OK @@ -10040,6 +10054,8 @@ paths: - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' - $ref: '#/components/parameters/AiOrgModel' + - $ref: '#/components/parameters/TraceId' + - $ref: '#/components/parameters/SpanId' responses: '200': description: OK @@ -10111,6 +10127,8 @@ paths: - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' - $ref: '#/components/parameters/AiOrgModel' + - $ref: '#/components/parameters/TraceId' + - $ref: '#/components/parameters/SpanId' responses: '200': description: OK @@ -10190,6 +10208,8 @@ paths: - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' - $ref: '#/components/parameters/AiOrgModel' + - $ref: '#/components/parameters/TraceId' + - $ref: '#/components/parameters/SpanId' responses: '200': description: OK @@ -10264,6 +10284,8 @@ paths: - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' - $ref: '#/components/parameters/AiOrgModel' + - $ref: '#/components/parameters/TraceId' + - $ref: '#/components/parameters/SpanId' responses: '200': description: OK @@ -10351,6 +10373,8 @@ paths: - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' - $ref: '#/components/parameters/AiOrgModel' + - $ref: '#/components/parameters/TraceId' + - $ref: '#/components/parameters/SpanId' responses: '200': description: OK @@ -10442,6 +10466,8 @@ paths: - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' - $ref: '#/components/parameters/AiOrgModel' + - $ref: '#/components/parameters/TraceId' + - $ref: '#/components/parameters/SpanId' responses: '200': description: OK @@ -10507,6 +10533,8 @@ paths: - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' - $ref: '#/components/parameters/AiOrgModel' + - $ref: '#/components/parameters/TraceId' + - $ref: '#/components/parameters/SpanId' responses: '200': description: OK @@ -10578,6 +10606,8 @@ paths: - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' - $ref: '#/components/parameters/AiOrgModel' + - $ref: '#/components/parameters/TraceId' + - $ref: '#/components/parameters/SpanId' responses: '200': description: OK @@ -10648,6 +10678,8 @@ paths: - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' - $ref: '#/components/parameters/AiOrgModel' + - $ref: '#/components/parameters/TraceId' + - $ref: '#/components/parameters/SpanId' responses: '200': description: OK @@ -10719,6 +10751,8 @@ paths: - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' - $ref: '#/components/parameters/AiOrgModel' + - $ref: '#/components/parameters/TraceId' + - $ref: '#/components/parameters/SpanId' responses: '200': description: OK @@ -10787,6 +10821,8 @@ paths: - $ref: '#/components/parameters/ApiKeyIds' - $ref: '#/components/parameters/Metadata' - $ref: '#/components/parameters/AiOrgModel' + - $ref: '#/components/parameters/TraceId' + - $ref: '#/components/parameters/SpanId' responses: '200': description: OK @@ -10850,6 +10886,8 @@ paths: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/Metadata' - $ref: '#/components/parameters/AiOrgModel' + - $ref: '#/components/parameters/TraceId' + - $ref: '#/components/parameters/SpanId' responses: '200': description: OK @@ -10919,6 +10957,8 @@ paths: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/Metadata' - $ref: '#/components/parameters/AiOrgModel' + - $ref: '#/components/parameters/TraceId' + - $ref: '#/components/parameters/SpanId' responses: '200': description: OK @@ -10990,6 +11030,8 @@ paths: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/Metadata' - $ref: '#/components/parameters/AiOrgModel' + - $ref: '#/components/parameters/TraceId' + - $ref: '#/components/parameters/SpanId' responses: '200': description: OK @@ -11213,8 +11255,22 @@ components: name: ai_org_model schema: type: string - description: Comma separate ai provider and model combination. Double underscore (__) should be used as a separator for each provider and model combination + description: Comma separated ai provider and model combination. Double underscore (__) should be used as a separator for each provider and model combination example: openai__gpt-3.5-turbo,azure-openai__gpt-35-turbo + TraceId: + in: query + name: trace_id + schema: + type: string + description: Comma separated trace IDs + example: my-unique-trace-1,my-unique-trace-2 + SpanId: + in: query + name: span_id + schema: + type: string + description: Comma separated span IDs + example: my-unique-span-1,my-unique-span-2 schemas: Error: From aaf1613f380df955fc2da5f54a35a767b91082b0 Mon Sep 17 00:00:00 2001 From: visargD Date: Tue, 24 Sep 2024 21:49:40 +0530 Subject: [PATCH 7/8] chore: add example for timestamp filters --- openapi.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openapi.yaml b/openapi.yaml index 3c411583..e906a33e 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -11103,6 +11103,7 @@ components: type: string format: date-time description: Minimum time of generation (ISO8601 format) + example: '2024-08-23T15:50:23+05:30' TimeOfGenerationMax: in: query name: time_of_generation_max @@ -11111,6 +11112,7 @@ components: type: string format: date-time description: Maximum time of generation (ISO8601 format) + example: '2024-08-23T15:50:23+05:30' TotalUnitsMin: in: query name: total_units_min From 33746b31b26425b71aee9cff9aadf32e4b0cccb0 Mon Sep 17 00:00:00 2001 From: visargD Date: Tue, 24 Sep 2024 22:04:39 +0530 Subject: [PATCH 8/8] chore: update description of workspace slug analytics filter --- openapi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi.yaml b/openapi.yaml index e906a33e..c2ba728b 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -11237,7 +11237,7 @@ components: name: workspace_slug schema: type: string - description: Workspace slug filter + description: Workspace slug filter. If a workspace API key is being used, this filter will not be taken into consideration. If an organisation API key is used and no workspace slug is passed, default workspace will be used. ApiKeyIds: in: query name: api_key_ids