@gravitee/gamma-lib-observability 3.4.0 → 3.5.0-chore-obs-102-sync-main-into-beta.a07bb16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/INTEGRATION.md +74 -0
- package/QUERYING.md +12 -10
- package/README.md +1 -0
- package/USAGE_GUIDE.md +41 -0
- package/dist/dashboards/adapters/time-series-adapter.d.ts +12 -7
- package/dist/dashboards/adapters/time-series-adapter.d.ts.map +1 -1
- package/dist/dashboards/compute-bucket-interval.d.ts +28 -3
- package/dist/dashboards/compute-bucket-interval.d.ts.map +1 -1
- package/dist/dashboards/index.d.ts +1 -1
- package/dist/dashboards/index.d.ts.map +1 -1
- package/dist/dashboards/renderers/CartesianPresentation.d.ts +1 -7
- package/dist/dashboards/renderers/CartesianPresentation.d.ts.map +1 -1
- package/dist/dashboards/renderers/CartesianWidgetRenderer.d.ts.map +1 -1
- package/dist/dashboards/resolve-zoom-range.d.ts +10 -9
- package/dist/dashboards/resolve-zoom-range.d.ts.map +1 -1
- package/dist/hooks/query-keys.d.ts +14 -0
- package/dist/hooks/query-keys.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5107 -3472
- package/dist/styles/observability.css +1 -1
- package/dist/targets/EvaluateNowButton.d.ts +19 -0
- package/dist/targets/EvaluateNowButton.d.ts.map +1 -0
- package/dist/targets/RuleTrend.d.ts +19 -0
- package/dist/targets/RuleTrend.d.ts.map +1 -0
- package/dist/targets/TargetCard.d.ts +20 -0
- package/dist/targets/TargetCard.d.ts.map +1 -0
- package/dist/targets/TargetForm.d.ts +19 -0
- package/dist/targets/TargetForm.d.ts.map +1 -0
- package/dist/targets/TargetHeatmap.d.ts +25 -0
- package/dist/targets/TargetHeatmap.d.ts.map +1 -0
- package/dist/targets/TargetStatusBadge.d.ts +18 -0
- package/dist/targets/TargetStatusBadge.d.ts.map +1 -0
- package/dist/targets/TargetsPanel.d.ts +15 -0
- package/dist/targets/TargetsPanel.d.ts.map +1 -0
- package/dist/targets/api-type-names.d.ts +5 -0
- package/dist/targets/api-type-names.d.ts.map +1 -0
- package/dist/targets/evaluation-summary.d.ts +34 -0
- package/dist/targets/evaluation-summary.d.ts.map +1 -0
- package/dist/targets/format.d.ts +26 -0
- package/dist/targets/format.d.ts.map +1 -0
- package/dist/targets/history-range.d.ts +44 -0
- package/dist/targets/history-range.d.ts.map +1 -0
- package/dist/targets/http-targets-source.d.ts +10 -0
- package/dist/targets/http-targets-source.d.ts.map +1 -0
- package/dist/targets/index.d.ts +15 -0
- package/dist/targets/index.d.ts.map +1 -0
- package/dist/targets/rule-filters.d.ts +7 -0
- package/dist/targets/rule-filters.d.ts.map +1 -0
- package/dist/targets/targets-provider.d.ts +27 -0
- package/dist/targets/targets-provider.d.ts.map +1 -0
- package/dist/targets/targets-source.d.ts +51 -0
- package/dist/targets/targets-source.d.ts.map +1 -0
- package/dist/targets/testing/in-memory-targets-source.d.ts +41 -0
- package/dist/targets/testing/in-memory-targets-source.d.ts.map +1 -0
- package/dist/targets/types.d.ts +130 -0
- package/dist/targets/types.d.ts.map +1 -0
- package/dist/targets/use-targets.d.ts +44 -0
- package/dist/targets/use-targets.d.ts.map +1 -0
- package/dist/{dashboard-access-provider.js → targets-source.js} +28 -1
- package/dist/testing/graphene-core-icons-mock.d.ts +2 -0
- package/dist/testing/graphene-core-icons-mock.d.ts.map +1 -1
- package/dist/testing/graphene-core-mock.d.ts +15 -1
- package/dist/testing/graphene-core-mock.d.ts.map +1 -1
- package/dist/testing/index.d.ts +1 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing.js +365 -36
- package/dist/types-entry.d.ts +2 -0
- package/dist/types-entry.d.ts.map +1 -1
- package/package.json +1 -1
package/INTEGRATION.md
CHANGED
|
@@ -17,6 +17,7 @@ This guide walks through integrating the observability library into a Gamma modu
|
|
|
17
17
|
- [Feature: Logs](#feature-logs)
|
|
18
18
|
- [Feature: Widget Embedding](#feature-widget-embedding)
|
|
19
19
|
- [Feature: Traces (preview)](#feature-traces-preview)
|
|
20
|
+
- [Feature: Targets](#feature-targets)
|
|
20
21
|
- [Navigation & Breadcrumbs](#navigation--breadcrumbs)
|
|
21
22
|
- [Capabilities (RBAC)](#capabilities-rbac)
|
|
22
23
|
- [Advanced Topics](#advanced-topics)
|
|
@@ -330,6 +331,20 @@ export const apiOverviewTemplate = defineDashboardTemplate({
|
|
|
330
331
|
> The full request-capability reference (every field accepted by the `measures` / `facets` / `time-series`
|
|
331
332
|
> endpoints, defaults, and widget → request mapping) lives in [`QUERYING.md`](./QUERYING.md).
|
|
332
333
|
|
|
334
|
+
#### Bucket resolution
|
|
335
|
+
|
|
336
|
+
A cartesian widget picks its bucket width from the range it is showing, aiming for about 48 points and
|
|
337
|
+
snapping to a ladder of round widths (1 s, 5 s, 10 s, 15 s, 30 s, 1 min, 2 min, 5 min…). The finest it
|
|
338
|
+
will ask for is **one second**.
|
|
339
|
+
|
|
340
|
+
That matters if you supply your own `MetricsDataSource` rather than `createHttpDataSource`: on short
|
|
341
|
+
windows — and after a reader drags to zoom on a chart — it will receive `interval` values below a
|
|
342
|
+
minute. A store that cannot serve them should round up rather than reject the request. The bundled
|
|
343
|
+
Gravitee analytics backend serves down to the second.
|
|
344
|
+
|
|
345
|
+
The bucket _count_ is what bounds a response, not the width, so a wide range can never ask for narrow
|
|
346
|
+
buckets: a month still resolves to roughly 48 points, one a day.
|
|
347
|
+
|
|
333
348
|
#### Cartesian combo charts (dual Y-axis)
|
|
334
349
|
|
|
335
350
|
Use a single `cartesian` widget with multiple `series[]` entries when you want to correlate metrics
|
|
@@ -822,6 +837,65 @@ When `tracesBaseUrl` is omitted, the lib falls back to `baseUrl`. Both now produ
|
|
|
822
837
|
|
|
823
838
|
---
|
|
824
839
|
|
|
840
|
+
## Feature: Targets
|
|
841
|
+
|
|
842
|
+
A **performance target** declares what "good" looks like for a subject — an API, an agent, anything the gateway reports telemetry for — as rules over the analytics vocabulary (`HTTP_GATEWAY_RESPONSE_TIME P95 ≤ 2000`, `HTTP_SERVER_ERROR_RATE PERCENTAGE ≤ 1`) evaluated on a rolling window. The Management API v2 stores the targets and evaluates them on a schedule (`/environments/{envId}/performance-targets`); this library ships the "Targets" tab and the list badge that read and write them.
|
|
843
|
+
|
|
844
|
+
The components know nothing about APIs versus agents. The host says what the subject is through three props, and the module that owns the subject keeps `apiIds` current (an API page passes its own id; an agent page passes the APIs its lineage resolved to):
|
|
845
|
+
|
|
846
|
+
| Prop | Value |
|
|
847
|
+
| ----------- | ---------------------------------------------------------------------------------------------------------- |
|
|
848
|
+
| `reference` | The lookup key the host will use to find these targets again — the API id, the agent's catalog id, … |
|
|
849
|
+
| `apiIds` | The API ids whose gateway telemetry is evaluated. May be empty while nothing is attributed yet. |
|
|
850
|
+
| `apiTypes` | The `ApiType` of those APIs (`PROXY`, `LLM_PROXY`, `MCP_PROXY`, `A2A_PROXY`, …); drives the metric picker. |
|
|
851
|
+
|
|
852
|
+
### Mounting the tab
|
|
853
|
+
|
|
854
|
+
Wrap the panel in a `TargetsProvider` whose `baseUrl` is the **Management API v2 environment root** (`{managementBaseURL}/v2/environments/{envId}`), where the targets and the analytics definition live. This is not the Gamma-scoped URL `observability.Routes` takes; a Gamma host builds it from the bootstrap's `managementBaseURL`. The provider reuses the nearest `HttpProvider` for `fetch`/headers/credentials, or takes an `http` prop of its own. `baseUrl` may be `undefined` while the host resolves it: badges then wait, and the panel should be mounted once it is known.
|
|
855
|
+
|
|
856
|
+
```tsx
|
|
857
|
+
import { TargetsPanel, TargetsProvider } from '@gravitee/gamma-lib-observability';
|
|
858
|
+
|
|
859
|
+
function ApiTargetsTab({ api }: { api: ApiDetailDto }) {
|
|
860
|
+
const { baseUrl } = useObservabilityBaseUrl();
|
|
861
|
+
return (
|
|
862
|
+
<TargetsProvider baseUrl={baseUrl} http={observabilityHttpOptions}>
|
|
863
|
+
<TargetsPanel
|
|
864
|
+
reference={api.id}
|
|
865
|
+
apiIds={[api.id]}
|
|
866
|
+
apiTypes={[api.type]}
|
|
867
|
+
readOnly={!canUpdateApi} // hides define / edit / delete / evaluate now
|
|
868
|
+
/>
|
|
869
|
+
</TargetsProvider>
|
|
870
|
+
);
|
|
871
|
+
}
|
|
872
|
+
```
|
|
873
|
+
|
|
874
|
+
The panel renders, in order: the empty state ("No targets declared", with the reason when `apiIds` is empty), one card per target with the latest verdict, a banner naming the missed rule and how long the miss has lasted, each rule's observed value against its threshold with deviation and sample count, the last windows as a strip, and "Evaluate now", which counts the server's rate limit down before offering again. `NOT_EVALUABLE` rules say why: no API attributed, no traffic in the window, or fewer samples than the target's minimum.
|
|
875
|
+
|
|
876
|
+
"Define targets" lists only the metrics the analytics definition serves for the subject's `apiTypes` (`GET /analytics/definition/apis/{apiName}/metrics`), shows the per-type scope only when the subject spans several types, and offers a filter only on metrics with a protocol dimension to scope by (MCP tool or method, LLM model, HTTP method or path, …). A server refusal that blames one rule (`parameters.ruleIndex`) lands under that rule.
|
|
877
|
+
|
|
878
|
+
### List badges
|
|
879
|
+
|
|
880
|
+
For a table, ask once for the whole page of rows and hand each row its answer; the hook batches by 500 references and never issues a request per row:
|
|
881
|
+
|
|
882
|
+
```tsx
|
|
883
|
+
import { TargetStatusBadge, useLatestTargetEvaluations } from '@gravitee/gamma-lib-observability';
|
|
884
|
+
|
|
885
|
+
function StatusColumn({ rows }: { rows: { id: string }[] }) {
|
|
886
|
+
const latest = useLatestTargetEvaluations(rows.map((row) => row.id));
|
|
887
|
+
return rows.map((row) => <TargetStatusBadge key={row.id} evaluation={latest.data?.[row.id]} />);
|
|
888
|
+
}
|
|
889
|
+
```
|
|
890
|
+
|
|
891
|
+
`evaluation` is `undefined` while loading, `null` when the reference has no target or no evaluation yet, and otherwise the latest evaluation (the worst one when several targets share the reference).
|
|
892
|
+
|
|
893
|
+
### Testing a host mount
|
|
894
|
+
|
|
895
|
+
`@gravitee/gamma-lib-observability/testing` exports `createInMemoryTargetsSource`, a `TargetsSource` over plain arrays with the server's refusals reproduced (400 with `ruleIndex`, 429 with `Retry-After`), and `SAMPLE_METRIC_SPECS`, a cut of the analytics definition. Pass it to `TargetsProvider` through the `source` prop.
|
|
896
|
+
|
|
897
|
+
---
|
|
898
|
+
|
|
825
899
|
## Navigation & Breadcrumbs
|
|
826
900
|
|
|
827
901
|
### Sidebar navigation
|
package/QUERYING.md
CHANGED
|
@@ -41,7 +41,7 @@ Which request fields each endpoint accepts (✅ supported, — not applicable):
|
|
|
41
41
|
| Field | Type | Allowed values / constraints |
|
|
42
42
|
| -------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
|
|
43
43
|
| `timeRange` | `TimeRange` | Relative (`{ type:'relative', period }`) or absolute (`{ type:'absolute', from, to }`); resolved to ISO 8601 on the wire. |
|
|
44
|
-
| `interval` | `number` | Bucket width in ms. The bundled renderers
|
|
44
|
+
| `interval` | `number` | Bucket width in ms. The bundled renderers snap it to a ladder of round widths targeting ~48 buckets (1-second floor). |
|
|
45
45
|
| `by` | `string[]` | Facet names. **facets:** up to 3 dimensions. **time-series:** up to 2. e.g. `API`, `HTTP_STATUS_CODE_GROUP`, `LLM_PROXY_MODEL`. |
|
|
46
46
|
| `limit` | `number` | Max buckets returned (`>= 1`). |
|
|
47
47
|
| `ranges` | `NumericRange[]` | `{ from: number; to: number }[]` — inclusive `from`, exclusive `to`. |
|
|
@@ -58,13 +58,13 @@ definition; the lists above mirror the v2 OpenAPI enums.
|
|
|
58
58
|
|
|
59
59
|
## 3. Defaults injected by the library
|
|
60
60
|
|
|
61
|
-
| Concern | Default
|
|
62
|
-
| ------------------------ |
|
|
63
|
-
| Facet metric (when none) | `{ name: 'HTTP_REQUESTS', measures: ['COUNT'] }`
|
|
64
|
-
| Measure (when omitted) | `COUNT`
|
|
65
|
-
| Time-series interval | ~48 buckets
|
|
66
|
-
| Query `staleTime` | `30_000` ms
|
|
67
|
-
| Sort | none (backend default order)
|
|
61
|
+
| Concern | Default | Where |
|
|
62
|
+
| ------------------------ | ------------------------------------------------- | ------------------------------------------------------------ |
|
|
63
|
+
| Facet metric (when none) | `{ name: 'HTTP_REQUESTS', measures: ['COUNT'] }` | `createHttpDataSource({ defaultFacetMetric })` — overridable |
|
|
64
|
+
| Measure (when omitted) | `COUNT` | `resolveMeasure()` / `DEFAULT_MEASURE` |
|
|
65
|
+
| Time-series interval | ~48 buckets, snapped to a round width (1 s floor) | `computeBucketInterval` / `DASHBOARD_BUCKET_TARGET` |
|
|
66
|
+
| Query `staleTime` | `30_000` ms | `DEFAULT_STALE_TIME` |
|
|
67
|
+
| Sort | none (backend default order) | — |
|
|
68
68
|
|
|
69
69
|
Keeping the public `metrics[].measures` populated (rather than relying on the wire-level fallback)
|
|
70
70
|
preserves the React Query cache-key contract, so overlapping widgets (e.g. a chart and a sparkline on
|
|
@@ -108,8 +108,10 @@ flag to take part. `zoomable: false` opts one chart out, for a tile too small to
|
|
|
108
108
|
mounted standalone beside others that should keep the gesture. A widget cannot opt _in_ where the
|
|
109
109
|
container offers nothing: outside those pages the gesture exists only if the host supplies
|
|
110
110
|
`onZoomTimeRange` through `WidgetInteractionProvider`. The brush is also withheld while a chart loads
|
|
111
|
-
or comes back empty, and
|
|
112
|
-
|
|
111
|
+
or comes back empty, and at the terminus — a window already worth a single bucket, which cannot be
|
|
112
|
+
narrowed because narrowing it would ask the series for a detail it does not carry. There is no floor
|
|
113
|
+
of its own: what the zoom can reach is what the pipeline can resolve, so the terminus moves down on
|
|
114
|
+
its own the day the buckets get finer.
|
|
113
115
|
|
|
114
116
|
**Rendering limits (request stays fully reachable):**
|
|
115
117
|
|
package/README.md
CHANGED
|
@@ -11,6 +11,7 @@ This library provides a **contributor model**: it exports page components, route
|
|
|
11
11
|
- **Dashboards** — read-only preset dashboards with CSS Grid widget layout
|
|
12
12
|
- **Embeddable widgets** — `WidgetItem` and `WidgetGroup` for embedding KPIs/charts on any page, with auto (data-fetching) and manual (host-provided data) modes
|
|
13
13
|
- **Logs** — `LogsExplorerPage` with search, filters, pagination, and column visibility
|
|
14
|
+
- **Targets** — `TargetsPanel` and `TargetStatusBadge` for performance targets declared on any subject (API, agent), evaluated by the Management API against gateway telemetry
|
|
14
15
|
- **Filters & time range** — `<FilterBar>`, `<TimeRangePicker>`, URL state codec
|
|
15
16
|
- **DI providers** — DataSource ports (Metrics, Logs, Traces), Capability, Persistence
|
|
16
17
|
- **Routing** — `defineObservabilityFeatures` for zero-config route + nav integration
|
package/USAGE_GUIDE.md
CHANGED
|
@@ -1242,4 +1242,45 @@ import { TracingScreen, SpanDetailPanel, TracingApiSelector } from '@gravitee/ga
|
|
|
1242
1242
|
|
|
1243
1243
|
---
|
|
1244
1244
|
|
|
1245
|
+
## Targets
|
|
1246
|
+
|
|
1247
|
+
Performance targets declared on a subject and evaluated by the Management API v2 (`/environments/{envId}/performance-targets`). Mounting and the subject props are covered in [`INTEGRATION.md`](./INTEGRATION.md#feature-targets); this is the API surface.
|
|
1248
|
+
|
|
1249
|
+
### Components
|
|
1250
|
+
|
|
1251
|
+
| Export | Description |
|
|
1252
|
+
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
1253
|
+
| `TargetsProvider` | Hands the components their `TargetsSource`: `baseUrl` (+ optional `http`, else the nearest `HttpProvider`) or a ready `source` for tests |
|
|
1254
|
+
| `TargetsPanel` | The "Targets" tab: `{ reference, apiIds, apiTypes, readOnly? }` — empty state, one card per target, the define/edit form, delete, evaluate |
|
|
1255
|
+
| `TargetStatusBadge` | List badge: `evaluation` is `undefined` (loading), `null` (no target) or the latest `TargetEvaluation` |
|
|
1256
|
+
| `TargetHeatmap` | The history as one status timeline per rule on a time axis (`axis`, from `timeAxis(range, intervalSeconds)`): each evaluation sits in the window its timestamp falls in, runs of equal verdicts are flat blocks (green met, red missed, grey not evaluable), and a window nothing was recorded in stays blank — "skipped" right after a quiet window, since the scheduler backs off, otherwise "not recorded"; a cursor follows the pointer or the arrow keys one window at a time, and the card names the window and the run it sits in |
|
|
1257
|
+
| `RuleTrend` | One rule's readings over the windows with the threshold as a dashed line, coloured per stretch by which side of the line it sat on; gaps where a window could not be evaluated |
|
|
1258
|
+
|
|
1259
|
+
### Hooks
|
|
1260
|
+
|
|
1261
|
+
All hooks read the source from `TargetsProvider` and key their queries under `observabilityQueryKeys.targets*`.
|
|
1262
|
+
|
|
1263
|
+
| Hook | Returns |
|
|
1264
|
+
| ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |
|
|
1265
|
+
| `useTargetsByReference(reference)` | `PerformanceTarget[]` declared under the reference |
|
|
1266
|
+
| `useTargetHistory(targetId, perPage = 24)` | `{ data: TargetEvaluation[], totalCount }`, most recent first |
|
|
1267
|
+
| `useLatestTargetEvaluations(references)` | `Record<reference, TargetEvaluation \| null>`; batched by 500, one request per batch |
|
|
1268
|
+
| `useTargetMetricCatalog(apiTypes)` | `{ metrics, isLoading, error }` — the definition's metrics for those types, merged, `apis` covering every type |
|
|
1269
|
+
| `useTargetFilterSpecs(metricName)` | The definition's filters for one metric |
|
|
1270
|
+
| `useTargetMutations(reference)` | `{ create, update, remove, evaluateNow }` mutations that refresh the list, the history and the badges they touch |
|
|
1271
|
+
|
|
1272
|
+
### Errors
|
|
1273
|
+
|
|
1274
|
+
`TargetsApiError` carries the `status` and, on a 400 that blames one rule, `ruleIndex`; `TargetRateLimitedError` (429) carries `retryAfterSeconds`. Branch on `isTargetRateLimited(error)` and `targetErrorRuleIndex(error)` rather than `instanceof`, for the same reason as the dashboard errors.
|
|
1275
|
+
|
|
1276
|
+
### Vocabulary helpers
|
|
1277
|
+
|
|
1278
|
+
`analyticsApiName(apiType)` maps an `ApiType` to the analytics definition's API name (`PROXY` → `HTTP_PROXY`, `LLM_PROXY` → `LLM`, …). `describeRule(rule, { label, unit })` renders `p95 Gateway response time ≤ 2,000 ms`; `formatMetricValue`, `formatDeviation`, `statusLabel` (`Met` / `Missed` / `Not evaluable`) and `notEvaluableReason` produce the words the panel uses, so a host can quote a target consistently elsewhere.
|
|
1279
|
+
|
|
1280
|
+
### Testing
|
|
1281
|
+
|
|
1282
|
+
`@gravitee/gamma-lib-observability/testing` exports `createInMemoryTargetsSource(options)` — targets, evaluations, a metric catalog (`SAMPLE_METRIC_SPECS` by default), an `evaluate` function for "evaluate now", `rateLimitedForSeconds`, `latencyMs` and `failure` — to drive `TargetsPanel` through `TargetsProvider`'s `source` prop.
|
|
1283
|
+
|
|
1284
|
+
---
|
|
1285
|
+
|
|
1245
1286
|
_This guide will be expanded as new features are added (custom dashboards)._
|
|
@@ -38,16 +38,21 @@ export interface MergedTimeSeries {
|
|
|
38
38
|
*
|
|
39
39
|
* Each group's key becomes a dataKey in the cartesian data. The shared x-axis
|
|
40
40
|
* is the union of all timestamps across all groups, bucketed on the raw
|
|
41
|
-
* timestamp floored to `BUCKET_FLOOR_MS`. Bucketing on
|
|
42
|
-
* than on the rendered label matters at the exact-span
|
|
43
|
-
* window comes back with a closing bucket whose keys span
|
|
44
|
-
* both ends would format to the same `HH:MM` — merging them
|
|
45
|
-
* bucket and write the closing value under the opening one.
|
|
41
|
+
* timestamp floored to a grid no coarser than `BUCKET_FLOOR_MS`. Bucketing on
|
|
42
|
+
* the timestamp rather than on the rendered label matters at the exact-span
|
|
43
|
+
* boundaries: a 24-hour window comes back with a closing bucket whose keys span
|
|
44
|
+
* exactly 24 h, and both ends would format to the same `HH:MM` — merging them
|
|
45
|
+
* would drop a bucket and write the closing value under the opening one.
|
|
46
|
+
*
|
|
47
|
+
* `intervalMs` is the bucket width the series was asked for. Pass it and a
|
|
48
|
+
* series finer than a minute keeps its buckets apart and gets labels that
|
|
49
|
+
* spell out the seconds; leave it out and the grid stays on the minute, which
|
|
50
|
+
* is what every caller had before the argument existed.
|
|
46
51
|
*
|
|
47
52
|
* How much of each timestamp a label spells out is decided from the data's
|
|
48
53
|
* granularity, not from the label text — see `resolveLabelShape`.
|
|
49
54
|
*/
|
|
50
|
-
export declare function mergeTimeSeries(seriesGroups: ReadonlyMap<string, readonly TimeSeriesGroup[]
|
|
55
|
+
export declare function mergeTimeSeries(seriesGroups: ReadonlyMap<string, readonly TimeSeriesGroup[]>, intervalMs?: number): MergedTimeSeries;
|
|
51
56
|
/**
|
|
52
57
|
* Merges multiple TimeSeriesGroup[] (one per series) into a single
|
|
53
58
|
* CartesianDataPoint[] suitable for CartesianChart.
|
|
@@ -55,5 +60,5 @@ export declare function mergeTimeSeries(seriesGroups: ReadonlyMap<string, readon
|
|
|
55
60
|
* Thin wrapper over {@link mergeTimeSeries} for callers that only render the
|
|
56
61
|
* chart and have no use for the bucket timestamps.
|
|
57
62
|
*/
|
|
58
|
-
export declare function mergeTimeSeriesToCartesian(seriesGroups: ReadonlyMap<string, readonly TimeSeriesGroup[]
|
|
63
|
+
export declare function mergeTimeSeriesToCartesian(seriesGroups: ReadonlyMap<string, readonly TimeSeriesGroup[]>, intervalMs?: number): CartesianDataPoint[];
|
|
59
64
|
//# sourceMappingURL=time-series-adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-series-adapter.d.ts","sourceRoot":"","sources":["../../../src/dashboards/adapters/time-series-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK7D;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,mCAAmC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,mFAAmF;IACnF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AA6BD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,gBAAgB,EAAE,EACnC,aAAa,EAAE,SAAS,CAAC,SAAS,eAAe,EAAE,GAAG,SAAS,CAAC,EAAE,GACjE;IAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC,CAAA;CAAE,CAwCtF;
|
|
1
|
+
{"version":3,"file":"time-series-adapter.d.ts","sourceRoot":"","sources":["../../../src/dashboards/adapters/time-series-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK7D;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,mCAAmC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,mFAAmF;IACnF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AA6BD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,gBAAgB,EAAE,EACnC,aAAa,EAAE,SAAS,CAAC,SAAS,eAAe,EAAE,GAAG,SAAS,CAAC,EAAE,GACjE;IAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC,CAAA;CAAE,CAwCtF;AAkBD;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC,EAC7D,UAAU,CAAC,EAAE,MAAM,GAClB,gBAAgB,CAmClB;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC,EAC7D,UAAU,CAAC,EAAE,MAAM,GAClB,kBAAkB,EAAE,CAEtB"}
|
|
@@ -1,15 +1,40 @@
|
|
|
1
1
|
import { AbsoluteTimeRange } from '../types/domain';
|
|
2
|
+
/**
|
|
3
|
+
* Finest bucket a chart will ask for.
|
|
4
|
+
*
|
|
5
|
+
* One second, which is what the analytics backend serves — the minute this
|
|
6
|
+
* used to sit at was a limit the library imposed on itself, with nothing on
|
|
7
|
+
* the wire behind it. Lowering it costs nothing in load: what bounds a
|
|
8
|
+
* response is the bucket *count*, held by `DASHBOARD_BUCKET_TARGET`, so a
|
|
9
|
+
* month can no more ask for one-second buckets than it could before.
|
|
10
|
+
*
|
|
11
|
+
* Move it the day the backend resolves finer, and the ladder, the labels and
|
|
12
|
+
* the zoom terminus all follow on their own.
|
|
13
|
+
*/
|
|
14
|
+
export declare const MIN_BUCKET_INTERVAL_MS = 1000;
|
|
2
15
|
/**
|
|
3
16
|
* Default number of buckets every dashboard widget aims for. Sharing a single
|
|
4
17
|
* target across cartesian charts and metric-widget sparklines keeps their
|
|
5
18
|
* `queryKey`s aligned so React Query can dedupe overlapping queries.
|
|
19
|
+
*
|
|
20
|
+
* A target, not a ceiling: snapping to the ladder lands a little above or a
|
|
21
|
+
* little below it, which is what keeps the axis density steady across ranges.
|
|
22
|
+
* Rounding up instead would turn it into a hard cap and let the count collapse
|
|
23
|
+
* — an hour would draw twelve points where it draws sixty.
|
|
6
24
|
*/
|
|
7
25
|
export declare const DASHBOARD_BUCKET_TARGET = 48;
|
|
8
26
|
/**
|
|
9
|
-
* Computes a bucket interval (in ms)
|
|
10
|
-
*
|
|
27
|
+
* Computes a bucket interval (in ms) yielding roughly `targetPoints` data
|
|
28
|
+
* points across the given range, snapped to {@link BUCKET_LADDER} and never
|
|
29
|
+
* finer than `minIntervalMs`.
|
|
30
|
+
*
|
|
31
|
+
* Every caller leaves `minIntervalMs` alone today, and that is what keeps a
|
|
32
|
+
* chart and a sparkline on the same metric sharing one `queryKey`: same
|
|
33
|
+
* arguments, same interval, one request. A deployment whose store is coarser
|
|
34
|
+
* than the default would pass its own — but it has to be passed everywhere, or
|
|
35
|
+
* the two drift apart and query twice.
|
|
11
36
|
*
|
|
12
37
|
* Expects a pre-resolved AbsoluteTimeRange (use `resolveStableTimeRange` first).
|
|
13
38
|
*/
|
|
14
|
-
export declare function computeBucketInterval(timeRange: AbsoluteTimeRange, targetPoints: number): number;
|
|
39
|
+
export declare function computeBucketInterval(timeRange: AbsoluteTimeRange, targetPoints: number, minIntervalMs?: number): number;
|
|
15
40
|
//# sourceMappingURL=compute-bucket-interval.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compute-bucket-interval.d.ts","sourceRoot":"","sources":["../../src/dashboards/compute-bucket-interval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"compute-bucket-interval.d.ts","sourceRoot":"","sources":["../../src/dashboards/compute-bucket-interval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAOzD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,OAAS,CAAC;AAoC7C;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,iBAAiB,EAC5B,YAAY,EAAE,MAAM,EACpB,aAAa,GAAE,MAA+B,GAC7C,MAAM,CAIR"}
|
|
@@ -21,7 +21,7 @@ export { clearWidgetRenderers, getWidgetRenderer, registerWidgetRenderer, type W
|
|
|
21
21
|
export { computeBucketInterval, DASHBOARD_BUCKET_TARGET } from './compute-bucket-interval';
|
|
22
22
|
export { computePreviousTimeRange } from './compute-previous-time-range';
|
|
23
23
|
export { resolveStableTimeRange } from './resolve-stable-time-range';
|
|
24
|
-
export {
|
|
24
|
+
export { resolveZoomRange, type ResolveZoomRangeInput } from './resolve-zoom-range';
|
|
25
25
|
export { facetsToBar, facetsToDoughnut } from './adapters/facets-adapter';
|
|
26
26
|
export { type AdaptedMetric, computeTrend, extractMeasureValue, extractSparklineData, measureResultToMetric, } from './adapters/measures-adapter';
|
|
27
27
|
export { buildFacetBucketChartConfigEntry, HTTP_STATUS_PALETTE, isStatusFacetField, normalizeStatusGroupKey, resolveGroupColor, resolveStatusPaletteColor, } from './adapters/status-palette';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dashboards/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAEhF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,KAAK,iBAAiB,EACtB,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,GACvB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,KAAK,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC3G,OAAO,EAAE,qBAAqB,EAAE,KAAK,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC3G,OAAO,EAAE,oBAAoB,EAAE,KAAK,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AACxG,OAAO,EAAE,uBAAuB,EAAE,KAAK,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACjH,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC/F,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,4BAA4B,GAClC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dashboards/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,12 +9,6 @@ export interface CartesianPresentationProps extends Omit<CartesianWidgetData, 't
|
|
|
9
9
|
* encloses the chart, which is what lets a dashboard tile stay draggable.
|
|
10
10
|
*/
|
|
11
11
|
readonly onSelectRange?: (startIndex: number, endIndex: number) => void;
|
|
12
|
-
/**
|
|
13
|
-
* Narrowest selection that commits, in categories. A drag below it is drawn
|
|
14
|
-
* as a measurement and cancelled on release, so the caller never receives a
|
|
15
|
-
* range it would only have to widen.
|
|
16
|
-
*/
|
|
17
|
-
readonly minSelectionCategories?: number;
|
|
18
12
|
}
|
|
19
|
-
export declare function CartesianPresentation({ data, config, series, seriesByKey, state, showTotal, totalLabel, onSelectRange,
|
|
13
|
+
export declare function CartesianPresentation({ data, config, series, seriesByKey, state, showTotal, totalLabel, onSelectRange, }: CartesianPresentationProps): import("react/jsx-runtime").JSX.Element;
|
|
20
14
|
//# sourceMappingURL=CartesianPresentation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CartesianPresentation.d.ts","sourceRoot":"","sources":["../../../src/dashboards/renderers/CartesianPresentation.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACnF;;;;;;;OAOG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"CartesianPresentation.d.ts","sourceRoot":"","sources":["../../../src/dashboards/renderers/CartesianPresentation.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACnF;;;;;;;OAOG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACzE;AAED,wBAAgB,qBAAqB,CAAC,EACpC,IAAI,EACJ,MAAM,EACN,MAAM,EACN,WAAW,EACX,KAAK,EACL,SAAS,EACT,UAAU,EACV,aAAa,GACd,EAAE,0BAA0B,2CA2B5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CartesianWidgetRenderer.d.ts","sourceRoot":"","sources":["../../../src/dashboards/renderers/CartesianWidgetRenderer.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,oBAAoB,CAAC;AAQ5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGvE,wBAAgB,uBAAuB,CAAC,EACtC,MAAM,EACN,SAAS,EACT,OAAO,EACP,eAAe,GAChB,EAAE,mBAAmB,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"CartesianWidgetRenderer.d.ts","sourceRoot":"","sources":["../../../src/dashboards/renderers/CartesianWidgetRenderer.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,oBAAoB,CAAC;AAQ5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGvE,wBAAgB,uBAAuB,CAAC,EACtC,MAAM,EACN,SAAS,EACT,OAAO,EACP,eAAe,GAChB,EAAE,mBAAmB,CAAC,eAAe,CAAC,2CAuHtC"}
|
|
@@ -1,11 +1,4 @@
|
|
|
1
1
|
import { AbsoluteTimeRange } from '../types/domain';
|
|
2
|
-
/**
|
|
3
|
-
* Shortest window the zoom may produce: the shortest fixed period the time
|
|
4
|
-
* range picker offers, five minutes today. Derived rather than restated, so a
|
|
5
|
-
* shorter preset lowers the zoom floor with it instead of leaving two copies
|
|
6
|
-
* of the same number to drift apart.
|
|
7
|
-
*/
|
|
8
|
-
export declare const MIN_ZOOM_RANGE_MS: number;
|
|
9
2
|
export interface ResolveZoomRangeInput {
|
|
10
3
|
/** Bucket timestamps behind the chart, strictly increasing (see `mergeTimeSeries`). */
|
|
11
4
|
readonly timestamps: readonly number[];
|
|
@@ -24,8 +17,16 @@ export interface ResolveZoomRangeInput {
|
|
|
24
17
|
*
|
|
25
18
|
* The chart reports bucket indices and nothing else — it has no time scale —
|
|
26
19
|
* so this is where a drag becomes a window. `null` means "leave the range
|
|
27
|
-
* alone": an empty chart, an unusable selection,
|
|
28
|
-
*
|
|
20
|
+
* alone": an empty chart, an unusable selection, a window already as narrow as
|
|
21
|
+
* the data can describe, or a drag across the whole width, which asks for the
|
|
22
|
+
* range that is already in effect.
|
|
23
|
+
*
|
|
24
|
+
* There is no floor of its own here. What the zoom can reach is what the
|
|
25
|
+
* pipeline can resolve, and that is `interval`: a window worth one bucket is
|
|
26
|
+
* the end of the road, because narrowing it further would ask the series for a
|
|
27
|
+
* detail it does not carry. Bounding the resolution rather than the window is
|
|
28
|
+
* how Grafana, Kibana and Datadog all read a brush, and it means the terminus
|
|
29
|
+
* moves on its own the day the buckets get finer.
|
|
29
30
|
*/
|
|
30
31
|
export declare function resolveZoomRange({ timestamps, startIndex, endIndex, interval, bounds, }: ResolveZoomRangeInput): AbsoluteTimeRange | null;
|
|
31
32
|
//# sourceMappingURL=resolve-zoom-range.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-zoom-range.d.ts","sourceRoot":"","sources":["../../src/dashboards/resolve-zoom-range.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolve-zoom-range.d.ts","sourceRoot":"","sources":["../../src/dashboards/resolve-zoom-range.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,uFAAuF;IACvF,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,6FAA6F;IAC7F,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,MAAM,GACP,EAAE,qBAAqB,GAAG,iBAAiB,GAAG,IAAI,CA0BlD"}
|
|
@@ -60,5 +60,19 @@ export declare const observabilityQueryKeys: {
|
|
|
60
60
|
readonly customDashboards: () => readonly ["observability", "custom-dashboards"];
|
|
61
61
|
readonly customDashboard: (id: string) => readonly ["observability", "custom-dashboards", string];
|
|
62
62
|
readonly filterLabels: (key: string) => readonly ["observability", "filterLabels", string];
|
|
63
|
+
readonly targets: (reference: string) => readonly ["observability", "targets", {
|
|
64
|
+
readonly reference: string;
|
|
65
|
+
}];
|
|
66
|
+
readonly targetHistoryAll: readonly ["observability", "targetHistory"];
|
|
67
|
+
readonly targetHistory: (targetId: string, perPage: number) => readonly ["observability", "targetHistory", {
|
|
68
|
+
readonly targetId: string;
|
|
69
|
+
readonly perPage: number;
|
|
70
|
+
}];
|
|
71
|
+
readonly targetsLatestAll: readonly ["observability", "targetsLatest"];
|
|
72
|
+
readonly targetsLatest: (references: readonly string[]) => readonly ["observability", "targetsLatest", {
|
|
73
|
+
readonly references: string[];
|
|
74
|
+
}];
|
|
75
|
+
readonly targetMetricSpecs: (apiName: string) => readonly ["observability", "targetMetricSpecs", string];
|
|
76
|
+
readonly targetFilterSpecs: (metricName: string) => readonly ["observability", "targetFilterSpecs", string];
|
|
63
77
|
};
|
|
64
78
|
//# sourceMappingURL=query-keys.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-keys.d.ts","sourceRoot":"","sources":["../../src/hooks/query-keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAmB3E,eAAO,MAAM,sBAAsB;;mCAItB,SAAS,kBAAkB,EAAE,aAC3B,SAAS,YACV,MAAM,YACN,eAAe,EAAE,OACtB,SAAS,MAAM,EAAE,UACd,MAAM,WACL,SAAS,YAAY,EAAE;;;;;;;;;0BAS5B,SAAS,MAAM,EAAE,aACV,SAAS,YACV,eAAe,EAAE,YACjB;QACR,OAAO,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;QACxC,MAAM,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;QACjC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;;;;;;;;;iCAgBiB,SAAS,aAAa,EAAE,aAAa,SAAS,YAAY,eAAe,EAAE;;;;;+BAO7E,SAAS,YAAY,eAAe,EAAE;;;;6BAGxC,MAAM,SAAS,MAAM;+BAEnB,MAAM,SAAS,MAAM;6BAEvB,MAAM,aAAa,SAAS,YAAY,eAAe,EAAE;;;;;kCAGpD,MAAM,WAAW,MAAM;;;;;4CAIb,MAAM;;;4CAEN,MAAM,UAAU,MAAM;;;;iDAGjB,MAAM;;;6BAE1B,MAAM;;mCAIA,MAAM;iCAER,MAAM;
|
|
1
|
+
{"version":3,"file":"query-keys.d.ts","sourceRoot":"","sources":["../../src/hooks/query-keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAmB3E,eAAO,MAAM,sBAAsB;;mCAItB,SAAS,kBAAkB,EAAE,aAC3B,SAAS,YACV,MAAM,YACN,eAAe,EAAE,OACtB,SAAS,MAAM,EAAE,UACd,MAAM,WACL,SAAS,YAAY,EAAE;;;;;;;;;0BAS5B,SAAS,MAAM,EAAE,aACV,SAAS,YACV,eAAe,EAAE,YACjB;QACR,OAAO,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;QACxC,MAAM,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;QACjC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;;;;;;;;;iCAgBiB,SAAS,aAAa,EAAE,aAAa,SAAS,YAAY,eAAe,EAAE;;;;;+BAO7E,SAAS,YAAY,eAAe,EAAE;;;;6BAGxC,MAAM,SAAS,MAAM;+BAEnB,MAAM,SAAS,MAAM;6BAEvB,MAAM,aAAa,SAAS,YAAY,eAAe,EAAE;;;;;kCAGpD,MAAM,WAAW,MAAM;;;;;4CAIb,MAAM;;;4CAEN,MAAM,UAAU,MAAM;;;;iDAGjB,MAAM;;;6BAE1B,MAAM;;mCAIA,MAAM;iCAER,MAAM;kCAEL,MAAM;;;;uCAID,MAAM,WAAW,MAAM;;;;;yCAKrB,SAAS,MAAM,EAAE;;;0CAGhB,MAAM;6CAEH,MAAM;CAC9B,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -49,4 +49,6 @@ export { DashboardConflictError, DashboardForbiddenError, DashboardNotFoundError
|
|
|
49
49
|
export { useAdoptServerDashboard, useCustomDashboardQuery, useCustomDashboardsQuery, useDeleteDashboardMutation, useCreateDashboardMutation, useOverwriteDashboardMutation, useTakeReadDashboardRevision, useUpdateDashboardMutation, } from './hooks/use-custom-dashboards';
|
|
50
50
|
export { parseDashboardJson, serializeDashboard, type DashboardJsonParseResult, } from './dashboards/editor/dashboard-json';
|
|
51
51
|
export type { EditableDashboardFields } from './dashboards/editor/dashboard-editor-state';
|
|
52
|
+
export { analyticsApiName, analyticsApiNames, apiTypeLabel, createHttpTargetsSource, describeRule, describeRuleSubject, describeThreshold, formatDeviation, formatDurationSeconds, formatMetricValue, formatTimeAgo, HISTORY_RANGES, HISTORY_RETENTION, HISTORY_WINDOWS, isTargetRateLimited, measureLabel, notEvaluableReason, offeredFilterNames, offeredFilterOperators, operatorSymbol, placeOnAxis, RuleTrend, slotOf, slotStart, spanWindows, statusBadgeVariant, statusLabel, summarizeHistory, TARGET_FILTER_OPERATORS, targetErrorRuleIndex, TARGETS_REFRESH_INTERVAL_MS, TargetHeatmap, TargetRateLimitedError, TargetsApiError, TargetsPanel, TargetsProvider, TargetStatusBadge, timeAxis, useLatestTargetEvaluations, useOptionalTargetsSource, useTargetFilterSpecs, useTargetHistory, useTargetMetricCatalog, useTargetMutations, useTargetsByReference, useTargetsSource, windowsFor, } from './targets';
|
|
53
|
+
export type { HistoryRange, HistorySummary, TimeAxis, LatestTargetEvaluations, NotEvaluableContext, PerformanceTarget, RuleMetricInfo, RuleTrendProps, TargetDefinition, TargetDeviation, TargetEvaluation, TargetEvaluationPage, TargetEvaluationStatus, TargetFilterOperator, TargetFilterSpec, TargetFilterSpecType, TargetHeatmapProps, TargetHistoryQuery, TargetMetricCatalog, TargetMetricSpec, TargetOperator, TargetRule, TargetRuleFilter, TargetRuleResult, TargetsPanelProps, TargetsProviderProps, TargetsSource, TargetsSubjectProps, TargetStatusBadgeProps, TargetSubject, } from './targets';
|
|
52
54
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|