@mastra/duckdb 1.5.2 → 1.6.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,45 @@
1
1
  # @mastra/duckdb
2
2
 
3
+ ## 1.6.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Added batch trace ID filtering to observability metric queries. ([#20535](https://github.com/mastra-ai/mastra/pull/20535))
8
+
9
+ ```ts
10
+ const result = await observability.getMetricBreakdown({
11
+ name: ['mastra_model_total_input_tokens'],
12
+ aggregation: 'sum',
13
+ groupBy: ['traceId'],
14
+ filters: { traceIds: ['trace-1', 'trace-2'] },
15
+ });
16
+ ```
17
+
18
+ ### Patch Changes
19
+
20
+ - Updated dependencies [[`4844167`](https://github.com/mastra-ai/mastra/commit/4844167cff2d5ec5004e94edd34970833040fa3f), [`c5e56ff`](https://github.com/mastra-ai/mastra/commit/c5e56ff3bcabdf062708f2d48744fec304df6792), [`594f7b2`](https://github.com/mastra-ai/mastra/commit/594f7b28f5263fb9982fd50d95c471fb971ea984), [`7f4e26d`](https://github.com/mastra-ai/mastra/commit/7f4e26dd57bd9b23c278ea21235ab823a3810a6c), [`311f943`](https://github.com/mastra-ai/mastra/commit/311f943bee60e8fdf5c84499ea50e884276c936c), [`322daa6`](https://github.com/mastra-ai/mastra/commit/322daa6d90552909204044790d850958f6745fed), [`db4e6ff`](https://github.com/mastra-ai/mastra/commit/db4e6ff744503112eb64deeaf6c2b54bf26a54c7), [`5faf93f`](https://github.com/mastra-ai/mastra/commit/5faf93f03e19daea394b9e2a923f2e4f833407f2), [`82201f7`](https://github.com/mastra-ai/mastra/commit/82201f75fae8e050a8de2df08b74875ee74c6b83), [`cadaa13`](https://github.com/mastra-ai/mastra/commit/cadaa1372e1077c8e85eb64c5499ba8803caa323), [`0c89896`](https://github.com/mastra-ai/mastra/commit/0c8989673fb7d106837098398131e570c6023b68), [`6d19a65`](https://github.com/mastra-ai/mastra/commit/6d19a6517f5da3911023d446b7e2d5dad8adb1cb), [`23b4238`](https://github.com/mastra-ai/mastra/commit/23b423844ad0bcf2a502a68dd62866d6160f9f6d), [`80ad891`](https://github.com/mastra-ai/mastra/commit/80ad891f8cd10379aa5b5af7510c763783b2ab56), [`fb18da5`](https://github.com/mastra-ai/mastra/commit/fb18da56fc35689ae370621a8f10b5b0d8606e20), [`fb18da5`](https://github.com/mastra-ai/mastra/commit/fb18da56fc35689ae370621a8f10b5b0d8606e20), [`e320a76`](https://github.com/mastra-ai/mastra/commit/e320a763feaf65c6be3cebecf746defcbde161b3), [`03b4918`](https://github.com/mastra-ai/mastra/commit/03b4918c80d188ce375334c393e131c6e94bd7eb), [`14ef73a`](https://github.com/mastra-ai/mastra/commit/14ef73a4bbd73e7808414816eb0628ce1d80b5d7), [`b582f7f`](https://github.com/mastra-ai/mastra/commit/b582f7fa2f9c1f87d19efc63d344fbe5dda2608c), [`0a6598b`](https://github.com/mastra-ai/mastra/commit/0a6598bde80bde008986ad6616bed9632b9294cb), [`06000d7`](https://github.com/mastra-ai/mastra/commit/06000d73712911572e913b8a83339270296d0a22), [`1d677d5`](https://github.com/mastra-ai/mastra/commit/1d677d5f99d7db403f7828585e8c25f299f72628), [`9e1dad8`](https://github.com/mastra-ai/mastra/commit/9e1dad8f7b1cab2bb7ade90e5b7561f24577b88a), [`2f43145`](https://github.com/mastra-ai/mastra/commit/2f4314504c03cbba280414ac81ba3197448ee6b0), [`4e35a56`](https://github.com/mastra-ai/mastra/commit/4e35a56cdf8d74a5ff6d5eda01f2c1deaf6cc7be), [`d94b8e1`](https://github.com/mastra-ai/mastra/commit/d94b8e1cee67416d518a8c30099040061bef6a1c), [`93e28ec`](https://github.com/mastra-ai/mastra/commit/93e28ecce9031c02397e0ae8406593e5c7a95883), [`729dab4`](https://github.com/mastra-ai/mastra/commit/729dab408faccfaef0cbb048e5a4338f9172847e), [`484003d`](https://github.com/mastra-ai/mastra/commit/484003d33ff59330c86b19863e4a38732d7e4155), [`3de0188`](https://github.com/mastra-ai/mastra/commit/3de0188bfaf9a9c09c95fe322b53838cf52c70b6), [`34d34d8`](https://github.com/mastra-ai/mastra/commit/34d34d8c811df512fef4dd5459f79b7821be1866), [`b582f7f`](https://github.com/mastra-ai/mastra/commit/b582f7fa2f9c1f87d19efc63d344fbe5dda2608c), [`933d291`](https://github.com/mastra-ai/mastra/commit/933d291146b789c19442ad206f94da3e4be90c64), [`a1cb98d`](https://github.com/mastra-ai/mastra/commit/a1cb98d11990b560b98482292a1f34aa1a2d9092), [`598ad82`](https://github.com/mastra-ai/mastra/commit/598ad82d41c41389a686338a1d0e50b7400e1938), [`1fd6aad`](https://github.com/mastra-ai/mastra/commit/1fd6aad1ea4a9d32f65efa832307c35e981a4c0a)]:
21
+ - @mastra/core@1.56.0
22
+
23
+ ## 1.6.0-alpha.0
24
+
25
+ ### Minor Changes
26
+
27
+ - Added batch trace ID filtering to observability metric queries. ([#20535](https://github.com/mastra-ai/mastra/pull/20535))
28
+
29
+ ```ts
30
+ const result = await observability.getMetricBreakdown({
31
+ name: ['mastra_model_total_input_tokens'],
32
+ aggregation: 'sum',
33
+ groupBy: ['traceId'],
34
+ filters: { traceIds: ['trace-1', 'trace-2'] },
35
+ });
36
+ ```
37
+
38
+ ### Patch Changes
39
+
40
+ - Updated dependencies [[`82201f7`](https://github.com/mastra-ai/mastra/commit/82201f75fae8e050a8de2df08b74875ee74c6b83), [`fb18da5`](https://github.com/mastra-ai/mastra/commit/fb18da56fc35689ae370621a8f10b5b0d8606e20), [`fb18da5`](https://github.com/mastra-ai/mastra/commit/fb18da56fc35689ae370621a8f10b5b0d8606e20), [`0a6598b`](https://github.com/mastra-ai/mastra/commit/0a6598bde80bde008986ad6616bed9632b9294cb), [`9e1dad8`](https://github.com/mastra-ai/mastra/commit/9e1dad8f7b1cab2bb7ade90e5b7561f24577b88a), [`2f43145`](https://github.com/mastra-ai/mastra/commit/2f4314504c03cbba280414ac81ba3197448ee6b0), [`34d34d8`](https://github.com/mastra-ai/mastra/commit/34d34d8c811df512fef4dd5459f79b7821be1866)]:
41
+ - @mastra/core@1.56.0-alpha.6
42
+
3
43
  ## 1.5.2
4
44
 
5
45
  ### Patch Changes
@@ -3,7 +3,7 @@ name: mastra-duckdb
3
3
  description: Documentation for @mastra/duckdb. Use when working with @mastra/duckdb APIs, configuration, or implementation.
4
4
  metadata:
5
5
  package: "@mastra/duckdb"
6
- version: "1.5.2"
6
+ version: "1.6.0"
7
7
  ---
8
8
 
9
9
  ## When to use
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.5.2",
2
+ "version": "1.6.0",
3
3
  "package": "@mastra/duckdb",
4
4
  "exports": {},
5
5
  "modules": {}
package/dist/index.cjs CHANGED
@@ -518,7 +518,7 @@ var ObservabilityStorageDuckDB = class extends _mastra_core_storage.Observabilit
518
518
  async loadDelegate() {
519
519
  if (this.delegate) return this.delegate;
520
520
  if (this.unavailableError) return null;
521
- if (!this.loadPromise) this.loadPromise = Promise.resolve().then(() => require("./observability-Dc-V68UX.cjs")).then(({ ObservabilityStorageDuckDB }) => {
521
+ if (!this.loadPromise) this.loadPromise = Promise.resolve().then(() => require("./observability-DjqzPR8Z.cjs")).then(({ ObservabilityStorageDuckDB }) => {
522
522
  const delegate = new ObservabilityStorageDuckDB({ db: this.db });
523
523
  this.delegate = delegate;
524
524
  return delegate;
package/dist/index.js CHANGED
@@ -517,7 +517,7 @@ var ObservabilityStorageDuckDB = class extends ObservabilityStorage {
517
517
  async loadDelegate() {
518
518
  if (this.delegate) return this.delegate;
519
519
  if (this.unavailableError) return null;
520
- if (!this.loadPromise) this.loadPromise = import("./observability-UnP20Kyg.js").then(({ ObservabilityStorageDuckDB }) => {
520
+ if (!this.loadPromise) this.loadPromise = import("./observability-5ro3rotr.js").then(({ ObservabilityStorageDuckDB }) => {
521
521
  const delegate = new ObservabilityStorageDuckDB({ db: this.db });
522
522
  this.delegate = delegate;
523
523
  return delegate;
@@ -1311,6 +1311,7 @@ async function getStreamHeadCursor$2(db) {
1311
1311
  }
1312
1312
  //#endregion
1313
1313
  //#region src/storage/domains/observability/metrics.ts
1314
+ const METRIC_FILTER_FIELD_MAPPINGS = { traceIds: "traceId" };
1314
1315
  function resolveDistinctColumnSql(distinctColumn) {
1315
1316
  if (!distinctColumn) throw new Error(`count_distinct aggregation requires a 'distinctColumn' argument`);
1316
1317
  if (!METRIC_DISTINCT_COLUMNS.includes(distinctColumn)) throw new Error(`Invalid distinctColumn: ${distinctColumn}`);
@@ -1553,7 +1554,7 @@ async function listMetrics(db, args) {
1553
1554
  const filterRecord = filters;
1554
1555
  const page = Number(pagination.page);
1555
1556
  const perPage = Number(pagination.perPage);
1556
- const { clause: filterClause, params: filterParams } = buildWhereClause(filterRecord);
1557
+ const { clause: filterClause, params: filterParams } = buildWhereClause(filterRecord, METRIC_FILTER_FIELD_MAPPINGS);
1557
1558
  if (mode === "delta") {
1558
1559
  assertDeltaPollingEnabled();
1559
1560
  const streamHeadCursor = await getStreamHeadCursor$1(db);
@@ -1617,7 +1618,7 @@ async function getStreamHeadCursor$1(db) {
1617
1618
  async function getMetricAggregate(db, args) {
1618
1619
  const aggSql = getAggregationSql$1(args.aggregation, "value", args.distinctColumn);
1619
1620
  const { clause: nameClause, params: nameParams } = buildMetricNameFilter(args.name);
1620
- const { clause: filterClause, params: filterParams } = buildWhereClause(args.filters);
1621
+ const { clause: filterClause, params: filterParams } = buildWhereClause(args.filters, METRIC_FILTER_FIELD_MAPPINGS);
1621
1622
  const { clause: whereClause, params: allParams } = buildCombinedWhereClause(nameClause, nameParams, filterClause, filterParams);
1622
1623
  const sql = `SELECT ${aggSql} AS value, ${getCostSummarySelect()} FROM metric_events ${whereClause}`;
1623
1624
  const row = (await db.query(sql, allParams))[0] ?? {};
@@ -1654,7 +1655,7 @@ async function getMetricAggregate(db, args) {
1654
1655
  startExclusive: ts.startExclusive,
1655
1656
  endExclusive: ts.endExclusive
1656
1657
  }
1657
- });
1658
+ }, METRIC_FILTER_FIELD_MAPPINGS);
1658
1659
  const { clause: prevWhereClause, params: prevParams } = buildCombinedWhereClause(nameClause, nameParams, prevFilterClause, prevFilterParams);
1659
1660
  const prevSql = `SELECT ${aggSql} AS value, ${getCostSummarySelect()} FROM metric_events ${prevWhereClause}`;
1660
1661
  const prevRow = (await db.query(prevSql, prevParams))[0] ?? {};
@@ -1685,7 +1686,7 @@ async function getMetricAggregate(db, args) {
1685
1686
  async function getMetricBreakdown(db, args) {
1686
1687
  const aggSql = getAggregationSql$1(args.aggregation, "value", args.distinctColumn);
1687
1688
  const { clause: nameClause, params: nameParams } = buildMetricNameFilter(args.name);
1688
- const { clause: filterClause, params: filterParams } = buildWhereClause(args.filters);
1689
+ const { clause: filterClause, params: filterParams } = buildWhereClause(args.filters, METRIC_FILTER_FIELD_MAPPINGS);
1689
1690
  const { clause: whereClause, params: allParams } = buildCombinedWhereClause(nameClause, nameParams, filterClause, filterParams);
1690
1691
  const resolvedGroupBy = resolveGroupBy(args.groupBy);
1691
1692
  const selectGroupBy = resolvedGroupBy.map((entry) => entry.selectSql).join(", ");
@@ -1714,7 +1715,7 @@ async function getMetricTimeSeries(db, args) {
1714
1715
  const aggSql = getAggregationSql$1(args.aggregation, "value", args.distinctColumn);
1715
1716
  const intervalSql = getIntervalSql$1(args.interval);
1716
1717
  const { clause: nameClause, params: nameParams } = buildMetricNameFilter(args.name);
1717
- const { clause: filterClause, params: filterParams } = buildWhereClause(args.filters);
1718
+ const { clause: filterClause, params: filterParams } = buildWhereClause(args.filters, METRIC_FILTER_FIELD_MAPPINGS);
1718
1719
  const { clause: whereClause, params: allParams } = buildCombinedWhereClause(nameClause, nameParams, filterClause, filterParams);
1719
1720
  if (args.groupBy && args.groupBy.length > 0) {
1720
1721
  const resolvedGroupBy = resolveGroupBy(args.groupBy);
@@ -1781,7 +1782,7 @@ async function getMetricTimeSeries(db, args) {
1781
1782
  /** Compute percentile time series for a metric using `percentile_cont`. */
1782
1783
  async function getMetricPercentiles(db, args) {
1783
1784
  const intervalSql = getIntervalSql$1(args.interval);
1784
- const { clause: filterClause, params: filterParams } = buildWhereClause(args.filters);
1785
+ const { clause: filterClause, params: filterParams } = buildWhereClause(args.filters, METRIC_FILTER_FIELD_MAPPINGS);
1785
1786
  const allConditions = [`name = ?`];
1786
1787
  const allParams = [args.name];
1787
1788
  if (filterClause) {
@@ -3729,4 +3730,4 @@ var ObservabilityStorageDuckDB = class extends ObservabilityStorage {
3729
3730
  //#endregion
3730
3731
  export { ObservabilityStorageDuckDB };
3731
3732
 
3732
- //# sourceMappingURL=observability-UnP20Kyg.js.map
3733
+ //# sourceMappingURL=observability-5ro3rotr.js.map