export type GetApiProjectsProjectIdMetricsScrapeArgs = {project_id: string, metric_name?: Array | undefined, metric_category?: ('system' | ' custom') | undefined, labels?: Array | undefined, compress?: string | undefined, format?: ('prometheus' | 'openmetrics') | undefined}; export type GetApiProjectsProjectIdMetricsScrapeOptions = {baseUrl?: string | undefined, fetch?: typeof fetch | undefined}; /** * Export metrics in Prometheus text format (default) or OpenMetrics format for scraping. * * GET /projects/{project_id}/metrics/scrape */ export const getApiProjectsProjectIdMetricsScrape = async (args: GetApiProjectsProjectIdMetricsScrapeArgs, options?: GetApiProjectsProjectIdMetricsScrapeOptions) => { const {baseUrl = "https://api.cloud.crusoe.ai/v1", fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() for (const item of args.metric_name ?? []) query.append("metric_name", String(item)) if (args.metric_category != null) query.append("metric_category", String(args.metric_category)) for (const item of args.labels ?? []) query.append("labels", String(item)) if (args.compress != null) query.append("compress", String(args.compress)) if (args.format != null) query.append("format", String(args.format)) const url = `${baseUrl.replace(/\/+$/, '')}/projects/${encodeURIComponent(String(args.project_id))}/metrics/scrape${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return undefined };