From 00df90e0cf0f5b63223df07f5f75eafddb513c87 Mon Sep 17 00:00:00 2001 From: "aspire-repo-bot[bot]" <268009190+aspire-repo-bot[bot]@users.noreply.github.com> Date: Tue, 2 Jun 2026 08:32:19 +0000 Subject: [PATCH 01/10] docs: document timestamp search qualifier for telemetry filtering Documents the new 'timestamp' search qualifier added in microsoft/aspire#17816. Users can now filter traces and structured logs by date/time using ISO 8601 strings with comparison operators (>, >=, <, <=) in the dashboard filter bar. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../src/content/docs/dashboard/explore.mdx | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/frontend/src/content/docs/dashboard/explore.mdx b/src/frontend/src/content/docs/dashboard/explore.mdx index e008f263a1..33138d2cac 100644 --- a/src/frontend/src/content/docs/dashboard/explore.mdx +++ b/src/frontend/src/content/docs/dashboard/explore.mdx @@ -317,6 +317,24 @@ Consider the following screenshots showing the structured logs filter dialog: A screenshot of the Aspire dashboard Structured logs page showing the filter dialog. +##### Filter by timestamp + +Use the `timestamp` search qualifier in the filter bar to narrow structured log results to a specific date/time range. The qualifier accepts ISO 8601 date/time strings together with a comparison operator: + +```text +timestamp:>2024-01-15T09:30:00 +timestamp:<=2024-06-01T12:00:00Z +timestamp:>=2024-03-01T08:30:00+05:00 +``` + +The supported comparison operators are `>`, `>=`, `<`, and `<=`. Timestamp values follow these timezone rules: + +- A value with no timezone suffix (for example `2024-01-15T09:30:00`) is treated as local time on the dashboard server. +- A value with a UTC offset (for example `+05:00`) is adjusted to UTC before comparison. +- A value with the `Z` suffix is treated as UTC directly. + +When using the **Add filter** dialog, selecting the **Timestamp** parameter shows a text input with a calendar icon. Clicking the calendar icon opens the browser's native date/time picker, which inserts the chosen date/time value in the correct format. + ### Traces page Navigate to the **Traces** page to view all of the traces for your app. Aspire automatically configures tracing for the different projects in your app. Distributed tracing is a diagnostic technique that helps engineers localize failures and performance issues within applications, especially those that might be distributed across multiple machines or processes. For more information, see [.NET distributed tracing](https://learn.microsoft.com/dotnet/core/diagnostics/distributed-tracing). This technique tracks requests through an application and correlates work done by different application integrations. Traces also help identify how long different stages of the request took to complete. The traces page displays the following information: @@ -338,6 +356,24 @@ When filtering traces in the **Add filter** dialog, after selecting a **Paramete A screenshot of the Aspire dashboard Traces page, showing the Add filter dialog with the http.route parameter selected. +##### Filter by timestamp + +Use the `timestamp` search qualifier in the filter bar to narrow trace results to a specific date/time range. The qualifier accepts ISO 8601 date/time strings together with a comparison operator: + +```text +timestamp:>2024-01-15T09:30:00 +timestamp:<=2024-06-01T12:00:00Z +timestamp:>=2024-03-01T08:30:00+05:00 +``` + +The supported comparison operators are `>`, `>=`, `<`, and `<=`. Timestamp values follow these timezone rules: + +- A value with no timezone suffix (for example `2024-01-15T09:30:00`) is treated as local time on the dashboard server. +- A value with a UTC offset (for example `+05:00`) is adjusted to UTC before comparison. +- A value with the `Z` suffix is treated as UTC directly. + +When using the **Add filter** dialog, selecting the **Timestamp** parameter shows a text input with a calendar icon. Clicking the calendar icon opens the browser's native date/time picker, which inserts the chosen date/time value in the correct format. + #### Combine telemetry from multiple resources When a resource has multiple replicas, you can filter telemetry to view data from all instances at once. Select the parent resource, labeled `(application)`, as shown in the following screenshot: From c1617ee84e59e3ac4a79882e8672117ecd0ba397 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 4 Jun 2026 08:10:55 +0000 Subject: [PATCH 02/10] Move timestamp qualifier docs to shared CLI references Co-authored-by: JamesNK <303201+JamesNK@users.noreply.github.com> --- .../src/content/docs/dashboard/explore.mdx | 36 ------------------- .../cli/commands/aspire-otel-logs.mdx | 11 ++++-- .../cli/commands/aspire-otel-spans.mdx | 12 +++++-- .../cli/commands/aspire-otel-traces.mdx | 12 +++++-- .../docs/reference/cli/search-filter.mdx | 27 +++++++++++--- 5 files changed, 50 insertions(+), 48 deletions(-) diff --git a/src/frontend/src/content/docs/dashboard/explore.mdx b/src/frontend/src/content/docs/dashboard/explore.mdx index 33138d2cac..e008f263a1 100644 --- a/src/frontend/src/content/docs/dashboard/explore.mdx +++ b/src/frontend/src/content/docs/dashboard/explore.mdx @@ -317,24 +317,6 @@ Consider the following screenshots showing the structured logs filter dialog: A screenshot of the Aspire dashboard Structured logs page showing the filter dialog. -##### Filter by timestamp - -Use the `timestamp` search qualifier in the filter bar to narrow structured log results to a specific date/time range. The qualifier accepts ISO 8601 date/time strings together with a comparison operator: - -```text -timestamp:>2024-01-15T09:30:00 -timestamp:<=2024-06-01T12:00:00Z -timestamp:>=2024-03-01T08:30:00+05:00 -``` - -The supported comparison operators are `>`, `>=`, `<`, and `<=`. Timestamp values follow these timezone rules: - -- A value with no timezone suffix (for example `2024-01-15T09:30:00`) is treated as local time on the dashboard server. -- A value with a UTC offset (for example `+05:00`) is adjusted to UTC before comparison. -- A value with the `Z` suffix is treated as UTC directly. - -When using the **Add filter** dialog, selecting the **Timestamp** parameter shows a text input with a calendar icon. Clicking the calendar icon opens the browser's native date/time picker, which inserts the chosen date/time value in the correct format. - ### Traces page Navigate to the **Traces** page to view all of the traces for your app. Aspire automatically configures tracing for the different projects in your app. Distributed tracing is a diagnostic technique that helps engineers localize failures and performance issues within applications, especially those that might be distributed across multiple machines or processes. For more information, see [.NET distributed tracing](https://learn.microsoft.com/dotnet/core/diagnostics/distributed-tracing). This technique tracks requests through an application and correlates work done by different application integrations. Traces also help identify how long different stages of the request took to complete. The traces page displays the following information: @@ -356,24 +338,6 @@ When filtering traces in the **Add filter** dialog, after selecting a **Paramete A screenshot of the Aspire dashboard Traces page, showing the Add filter dialog with the http.route parameter selected. -##### Filter by timestamp - -Use the `timestamp` search qualifier in the filter bar to narrow trace results to a specific date/time range. The qualifier accepts ISO 8601 date/time strings together with a comparison operator: - -```text -timestamp:>2024-01-15T09:30:00 -timestamp:<=2024-06-01T12:00:00Z -timestamp:>=2024-03-01T08:30:00+05:00 -``` - -The supported comparison operators are `>`, `>=`, `<`, and `<=`. Timestamp values follow these timezone rules: - -- A value with no timezone suffix (for example `2024-01-15T09:30:00`) is treated as local time on the dashboard server. -- A value with a UTC offset (for example `+05:00`) is adjusted to UTC before comparison. -- A value with the `Z` suffix is treated as UTC directly. - -When using the **Add filter** dialog, selecting the **Timestamp** parameter shows a text input with a calendar icon. Clicking the calendar icon opens the browser's native date/time picker, which inserts the chosen date/time value in the correct format. - #### Combine telemetry from multiple resources When a resource has multiple replicas, you can filter telemetry to view data from all instances at once. Select the parent resource, labeled `(application)`, as shown in the following screenshot: diff --git a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-logs.mdx b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-logs.mdx index 2971234edf..fabc482972 100644 --- a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-logs.mdx +++ b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-logs.mdx @@ -65,7 +65,7 @@ The following options are available: - **`--search `** - Full-text search across log text fields, such as log messages, attribute values, scope, and IDs. Supports plain free-text fragments and structured `field:value` qualifiers. For more information, see [Search and filter](/reference/cli/search-filter/). + Full-text search across log text fields, such as log messages, attribute values, scope, IDs, and timestamps. Supports plain free-text fragments and structured `field:value` qualifiers. For more information, see [Search and filter](/reference/cli/search-filter/). | Syntax | Meaning | |--------|---------| @@ -73,9 +73,10 @@ The following options are available: | `"quoted phrase"` | Single fragment containing spaces | | `field:value` | Field qualifier — value must match the named field | | `-field:value` | Negated qualifier — excludes matches | + | `field:>value` / `field:>=value` / `field: @@ -133,6 +134,12 @@ The following options are available: aspire otel logs --search "scope:Microsoft.EntityFrameworkCore severity:Warning" ``` +- Filter logs by timestamp: + + ```bash title="Aspire CLI" + aspire otel logs --search "timestamp:>=2024-06-01T12:00:00Z severity:Error" + ``` + - View logs from a standalone dashboard using the login URL (token is automatically exchanged for an API key): ```bash title="Aspire CLI" diff --git a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-spans.mdx b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-spans.mdx index 595fa1c691..656c1e8770 100644 --- a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-spans.mdx +++ b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-spans.mdx @@ -65,7 +65,7 @@ The following options are available: - **`--search `** - Full-text search across span text fields, such as names, attribute values, source, and IDs. Supports plain free-text fragments and structured `field:value` qualifiers. For more information, see [Search and filter](/reference/cli/search-filter/). + Full-text search across span text fields, such as names, attribute values, source, IDs, and timestamps. Supports plain free-text fragments and structured `field:value` qualifiers. For more information, see [Search and filter](/reference/cli/search-filter/). | Syntax | Meaning | |--------|---------| @@ -73,10 +73,10 @@ The following options are available: | `"quoted phrase"` | Single fragment containing spaces | | `field:value` | Field qualifier — value must match the named field | | `-field:value` | Negated qualifier — excludes matches | - | `field:>N` / `field:>=N` / `field:value` / `field:>=value` / `field: @@ -134,6 +134,12 @@ The following options are available: aspire otel spans --search "@db.system:postgresql" ``` +- Filter spans by timestamp: + + ```bash title="Aspire CLI" + aspire otel spans --search "timestamp:>=2024-03-01T08:30:00+05:00 kind:server" + ``` + - View spans from a standalone dashboard using the login URL (token is automatically exchanged for an API key): ```bash title="Aspire CLI" diff --git a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-traces.mdx b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-traces.mdx index 2e174409e0..89f2da548e 100644 --- a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-traces.mdx +++ b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-traces.mdx @@ -63,7 +63,7 @@ The following options are available: - **`--search `** - Full-text search across trace and span text fields, such as names, attribute values, source, and IDs. Supports plain free-text fragments and structured `field:value` qualifiers. For more information, see [Search and filter](/reference/cli/search-filter/). + Full-text search across trace and span text fields, such as names, attribute values, source, IDs, and timestamps. Supports plain free-text fragments and structured `field:value` qualifiers. For more information, see [Search and filter](/reference/cli/search-filter/). | Syntax | Meaning | |--------|---------| @@ -71,10 +71,10 @@ The following options are available: | `"quoted phrase"` | Single fragment containing spaces | | `field:value` | Field qualifier — value must match the named field | | `-field:value` | Negated qualifier — excludes matches | - | `field:>N` / `field:>=N` / `field:value` / `field:>=value` / `field: @@ -132,6 +132,12 @@ The following options are available: aspire otel traces --search "@http.status_code:500" ``` +- Filter traces by timestamp: + + ```bash title="Aspire CLI" + aspire otel traces --search "timestamp:>2024-01-15T09:30:00 status:error" + ``` + - View traces from a standalone dashboard using the login URL (token is automatically exchanged for an API key): ```bash title="Aspire CLI" diff --git a/src/frontend/src/content/docs/reference/cli/search-filter.mdx b/src/frontend/src/content/docs/reference/cli/search-filter.mdx index a9f4f514a1..1c3d95f099 100644 --- a/src/frontend/src/content/docs/reference/cli/search-filter.mdx +++ b/src/frontend/src/content/docs/reference/cli/search-filter.mdx @@ -28,10 +28,26 @@ Search queries support free-text fragments, field qualifiers, attribute qualifie | `field:"value with spaces"` | Quoted field qualifier value | `message:"connection failed"` | | `@attr:value` | Attribute qualifier — matches custom span/log attributes | `@http.method:GET` | | `-field:value` / `-@attr:value` | Negated qualifier — excludes matches | `-severity:debug` | -| `field:>N` / `field:>=N` / `field:100` | +| `field:>value` / `field:>=value` / `field:100` | All terms are AND'd: every fragment and qualifier must independently match. +## Timestamp qualifier + +Use the `timestamp` field qualifier to narrow structured logs, traces, and spans to a specific date/time range. The qualifier accepts ISO 8601 date/time strings together with a comparison operator: + +```bash title="Aspire CLI" +aspire otel logs --search "timestamp:>2024-01-15T09:30:00" +aspire otel traces --search "timestamp:<=2024-06-01T12:00:00Z" +aspire otel spans --search "timestamp:>=2024-03-01T08:30:00+05:00" +``` + +The supported comparison operators are `>`, `>=`, `<`, and `<=`. Timestamp values follow these timezone rules: + +- A value with no timezone suffix (for example `2024-01-15T09:30:00`) is treated as local time on the dashboard server. +- A value with a UTC offset (for example `+05:00`) is adjusted to UTC before comparison. +- A value with the `Z` suffix is treated as UTC directly. + ## Console logs Matches against log line text content and resource name. Only free-text is supported (no structured qualifiers). @@ -45,36 +61,39 @@ aspire logs --follow --search "\"connection error\"" Supports free-text and structured qualifiers. Free-text matches against message, resource name, scope, trace/span IDs, severity, and all attribute keys/values. -Available field qualifiers: `severity`, `resource`, `scope`, `message`, `trace-id`, `span-id`, `event`. +Available field qualifiers: `severity`, `resource`, `scope`, `message`, `trace-id`, `span-id`, `event`, `timestamp`. ```bash title="Aspire CLI" aspire otel logs --search "severity:error \"connection failed\"" aspire otel logs --search "resource:api -severity:debug" aspire otel logs --search "scope:Microsoft.EntityFrameworkCore" +aspire otel logs --search "timestamp:>=2024-06-01T12:00:00Z severity:error" ``` ## Traces Supports free-text and structured qualifiers. Free-text matches against trace name, resource name, and all span fields within the trace. -Available field qualifiers: `name`, `resource`, `trace-id`, `status`, `duration`. +Available field qualifiers: `name`, `resource`, `trace-id`, `status`, `duration`, `timestamp`. ```bash title="Aspire CLI" aspire otel traces --search "checkout" aspire otel traces --search "status:error duration:>500" aspire otel traces --search "@http.status_code:500" +aspire otel traces --search "timestamp:>2024-01-15T09:30:00 status:error" ``` ## Spans Supports free-text and structured qualifiers. Free-text matches against span name, resource name, scope, trace/span IDs, status, kind, and all attribute keys/values. -Available field qualifiers: `name`, `resource`, `scope`, `status`, `kind`, `trace-id`, `span-id`, `duration`. +Available field qualifiers: `name`, `resource`, `scope`, `status`, `kind`, `trace-id`, `span-id`, `duration`, `timestamp`. ```bash title="Aspire CLI" aspire otel spans --search "@http.method:GET duration:>100 status:error" aspire otel spans --search "@db.system:postgresql" aspire otel spans --search "-kind:internal" +aspire otel spans --search "timestamp:>=2024-03-01T08:30:00+05:00 kind:server" ``` ## See also From 2a3002477e201aa8577830d4f296421105248ca7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 4 Jun 2026 08:11:49 +0000 Subject: [PATCH 03/10] Fix severity casing in timestamp search example Co-authored-by: JamesNK <303201+JamesNK@users.noreply.github.com> --- .../content/docs/reference/cli/commands/aspire-otel-logs.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-logs.mdx b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-logs.mdx index fabc482972..6079b13e96 100644 --- a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-logs.mdx +++ b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-logs.mdx @@ -137,7 +137,7 @@ The following options are available: - Filter logs by timestamp: ```bash title="Aspire CLI" - aspire otel logs --search "timestamp:>=2024-06-01T12:00:00Z severity:Error" + aspire otel logs --search "timestamp:>=2024-06-01T12:00:00Z severity:error" ``` - View logs from a standalone dashboard using the login URL (token is automatically exchanged for an API key): From 1a2f9d328cb249b0e10e1faec9ffe8683e8198f7 Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Thu, 4 Jun 2026 16:18:32 +0800 Subject: [PATCH 04/10] Apply suggestions from code review Co-authored-by: James Newton-King --- .../content/docs/reference/cli/commands/aspire-otel-logs.mdx | 4 ++-- .../content/docs/reference/cli/commands/aspire-otel-spans.mdx | 2 +- .../docs/reference/cli/commands/aspire-otel-traces.mdx | 2 +- src/frontend/src/content/docs/reference/cli/search-filter.mdx | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-logs.mdx b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-logs.mdx index 6079b13e96..b8f3fb8943 100644 --- a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-logs.mdx +++ b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-logs.mdx @@ -65,7 +65,7 @@ The following options are available: - **`--search `** - Full-text search across log text fields, such as log messages, attribute values, scope, IDs, and timestamps. Supports plain free-text fragments and structured `field:value` qualifiers. For more information, see [Search and filter](/reference/cli/search-filter/). + Full-text search across log text fields, such as log messages, attribute values, scope, and IDs. Supports plain free-text fragments and structured `field:value` qualifiers. For more information, see [Search and filter](/reference/cli/search-filter/). | Syntax | Meaning | |--------|---------| @@ -137,7 +137,7 @@ The following options are available: - Filter logs by timestamp: ```bash title="Aspire CLI" - aspire otel logs --search "timestamp:>=2024-06-01T12:00:00Z severity:error" + aspire otel logs --search "timestamp:>=2024-06-01T12:00:00 severity:error" ``` - View logs from a standalone dashboard using the login URL (token is automatically exchanged for an API key): diff --git a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-spans.mdx b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-spans.mdx index 656c1e8770..70a137ca6e 100644 --- a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-spans.mdx +++ b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-spans.mdx @@ -137,7 +137,7 @@ The following options are available: - Filter spans by timestamp: ```bash title="Aspire CLI" - aspire otel spans --search "timestamp:>=2024-03-01T08:30:00+05:00 kind:server" + aspire otel spans --search "timestamp:>=2024-03-01T08:30:00 kind:server" ``` - View spans from a standalone dashboard using the login URL (token is automatically exchanged for an API key): diff --git a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-traces.mdx b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-traces.mdx index 89f2da548e..29c3703ed7 100644 --- a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-traces.mdx +++ b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-traces.mdx @@ -63,7 +63,7 @@ The following options are available: - **`--search `** - Full-text search across trace and span text fields, such as names, attribute values, source, IDs, and timestamps. Supports plain free-text fragments and structured `field:value` qualifiers. For more information, see [Search and filter](/reference/cli/search-filter/). + Full-text search across trace and span text fields, such as names, attribute values, source, and IDs. Supports plain free-text fragments and structured `field:value` qualifiers. For more information, see [Search and filter](/reference/cli/search-filter/). | Syntax | Meaning | |--------|---------| diff --git a/src/frontend/src/content/docs/reference/cli/search-filter.mdx b/src/frontend/src/content/docs/reference/cli/search-filter.mdx index 1c3d95f099..67c3c40d4b 100644 --- a/src/frontend/src/content/docs/reference/cli/search-filter.mdx +++ b/src/frontend/src/content/docs/reference/cli/search-filter.mdx @@ -39,7 +39,7 @@ Use the `timestamp` field qualifier to narrow structured logs, traces, and spans ```bash title="Aspire CLI" aspire otel logs --search "timestamp:>2024-01-15T09:30:00" aspire otel traces --search "timestamp:<=2024-06-01T12:00:00Z" -aspire otel spans --search "timestamp:>=2024-03-01T08:30:00+05:00" +aspire otel spans --search "timestamp:>=2024-01-01 timestamp:<2025-01-01" ``` The supported comparison operators are `>`, `>=`, `<`, and `<=`. Timestamp values follow these timezone rules: @@ -93,7 +93,7 @@ Available field qualifiers: `name`, `resource`, `scope`, `status`, `kind`, `trac aspire otel spans --search "@http.method:GET duration:>100 status:error" aspire otel spans --search "@db.system:postgresql" aspire otel spans --search "-kind:internal" -aspire otel spans --search "timestamp:>=2024-03-01T08:30:00+05:00 kind:server" +aspire otel spans --search "timestamp:>=2024-03-01T08:30:00 kind:server" ``` ## See also From 23d9295c7424213260d8b7d81b7ff16f98772100 Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Thu, 4 Jun 2026 16:19:05 +0800 Subject: [PATCH 05/10] Apply suggestion from @JamesNK --- .../content/docs/reference/cli/commands/aspire-otel-spans.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-spans.mdx b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-spans.mdx index 70a137ca6e..bd519813bb 100644 --- a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-spans.mdx +++ b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-spans.mdx @@ -65,7 +65,7 @@ The following options are available: - **`--search `** - Full-text search across span text fields, such as names, attribute values, source, IDs, and timestamps. Supports plain free-text fragments and structured `field:value` qualifiers. For more information, see [Search and filter](/reference/cli/search-filter/). + Full-text search across span text fields, such as names, attribute values, source, and IDs. Supports plain free-text fragments and structured `field:value` qualifiers. For more information, see [Search and filter](/reference/cli/search-filter/). | Syntax | Meaning | |--------|---------| From cc63ccf180c4cda912dac47dacfc210b4f66a1be Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Thu, 4 Jun 2026 16:19:40 +0800 Subject: [PATCH 06/10] Apply suggestion from @JamesNK --- src/frontend/src/content/docs/reference/cli/search-filter.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frontend/src/content/docs/reference/cli/search-filter.mdx b/src/frontend/src/content/docs/reference/cli/search-filter.mdx index 67c3c40d4b..39809c75a0 100644 --- a/src/frontend/src/content/docs/reference/cli/search-filter.mdx +++ b/src/frontend/src/content/docs/reference/cli/search-filter.mdx @@ -67,7 +67,7 @@ Available field qualifiers: `severity`, `resource`, `scope`, `message`, `trace-i aspire otel logs --search "severity:error \"connection failed\"" aspire otel logs --search "resource:api -severity:debug" aspire otel logs --search "scope:Microsoft.EntityFrameworkCore" -aspire otel logs --search "timestamp:>=2024-06-01T12:00:00Z severity:error" +aspire otel logs --search "timestamp:>=2024-06-01T12:00:00 severity:error" ``` ## Traces From 5456a75b354639067c79fa07611bd895c2ae1ece Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 4 Jun 2026 08:22:03 +0000 Subject: [PATCH 07/10] docs: clarify date-only timestamp search values Co-authored-by: JamesNK <303201+JamesNK@users.noreply.github.com> --- src/frontend/src/content/docs/reference/cli/search-filter.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/frontend/src/content/docs/reference/cli/search-filter.mdx b/src/frontend/src/content/docs/reference/cli/search-filter.mdx index 39809c75a0..a94e30c0f3 100644 --- a/src/frontend/src/content/docs/reference/cli/search-filter.mdx +++ b/src/frontend/src/content/docs/reference/cli/search-filter.mdx @@ -34,7 +34,7 @@ All terms are AND'd: every fragment and qualifier must independently match. ## Timestamp qualifier -Use the `timestamp` field qualifier to narrow structured logs, traces, and spans to a specific date/time range. The qualifier accepts ISO 8601 date/time strings together with a comparison operator: +Use the `timestamp` field qualifier to narrow structured logs, traces, and spans to a specific date/time range. The qualifier accepts ISO 8601 date or date/time strings together with a comparison operator: ```bash title="Aspire CLI" aspire otel logs --search "timestamp:>2024-01-15T09:30:00" @@ -44,7 +44,7 @@ aspire otel spans --search "timestamp:>=2024-01-01 timestamp:<2025-01-01" The supported comparison operators are `>`, `>=`, `<`, and `<=`. Timestamp values follow these timezone rules: -- A value with no timezone suffix (for example `2024-01-15T09:30:00`) is treated as local time on the dashboard server. +- A value with no timezone suffix (for example `2024-01-15` or `2024-01-15T09:30:00`) is treated as local time on the dashboard server. - A value with a UTC offset (for example `+05:00`) is adjusted to UTC before comparison. - A value with the `Z` suffix is treated as UTC directly. From 382df14da7533b848a1571fb2979ea43e53571b6 Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Sat, 6 Jun 2026 12:55:33 +0800 Subject: [PATCH 08/10] Apply suggestion from @JamesNK --- src/frontend/src/content/docs/reference/cli/search-filter.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frontend/src/content/docs/reference/cli/search-filter.mdx b/src/frontend/src/content/docs/reference/cli/search-filter.mdx index a94e30c0f3..d324b2a832 100644 --- a/src/frontend/src/content/docs/reference/cli/search-filter.mdx +++ b/src/frontend/src/content/docs/reference/cli/search-filter.mdx @@ -45,7 +45,7 @@ aspire otel spans --search "timestamp:>=2024-01-01 timestamp:<2025-01-01" The supported comparison operators are `>`, `>=`, `<`, and `<=`. Timestamp values follow these timezone rules: - A value with no timezone suffix (for example `2024-01-15` or `2024-01-15T09:30:00`) is treated as local time on the dashboard server. -- A value with a UTC offset (for example `+05:00`) is adjusted to UTC before comparison. +- A value with a UTC offset (for example `2024-06-01T12:00:00+05:00`) is adjusted to UTC before comparison. - A value with the `Z` suffix is treated as UTC directly. ## Console logs From 0ead73491e17a34c7cfdb80f029a227e89c5cadf Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Sat, 6 Jun 2026 12:58:17 +0800 Subject: [PATCH 09/10] Apply suggestion from @JamesNK --- .../src/content/docs/reference/cli/search-filter.mdx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/frontend/src/content/docs/reference/cli/search-filter.mdx b/src/frontend/src/content/docs/reference/cli/search-filter.mdx index d324b2a832..f15ddae53e 100644 --- a/src/frontend/src/content/docs/reference/cli/search-filter.mdx +++ b/src/frontend/src/content/docs/reference/cli/search-filter.mdx @@ -42,9 +42,11 @@ aspire otel traces --search "timestamp:<=2024-06-01T12:00:00Z" aspire otel spans --search "timestamp:>=2024-01-01 timestamp:<2025-01-01" ``` -The supported comparison operators are `>`, `>=`, `<`, and `<=`. Timestamp values follow these timezone rules: +The supported comparison operators are `>`, `>=`, `<`, and `<=`. -- A value with no timezone suffix (for example `2024-01-15` or `2024-01-15T09:30:00`) is treated as local time on the dashboard server. +Timestamp values are internally stored with UTC. The `timestamp` value is converted to UTC using these timezone rules: + +- A value with no timezone suffix (for example `2024-01-15` or `2024-01-15T09:30:00`) is treated as local time on the dashboard server and adjusted to UTC before comparison. - A value with a UTC offset (for example `2024-06-01T12:00:00+05:00`) is adjusted to UTC before comparison. - A value with the `Z` suffix is treated as UTC directly. From ff90c4c3efe736a5913517544dc4a22ee672e61c Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Sat, 6 Jun 2026 13:05:18 +0800 Subject: [PATCH 10/10] Update timestamp example dates to use 2026 --- .../reference/cli/commands/aspire-otel-logs.mdx | 2 +- .../reference/cli/commands/aspire-otel-spans.mdx | 2 +- .../cli/commands/aspire-otel-traces.mdx | 2 +- .../content/docs/reference/cli/search-filter.mdx | 16 ++++++++-------- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-logs.mdx b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-logs.mdx index b8f3fb8943..a3b0ba7dfd 100644 --- a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-logs.mdx +++ b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-logs.mdx @@ -137,7 +137,7 @@ The following options are available: - Filter logs by timestamp: ```bash title="Aspire CLI" - aspire otel logs --search "timestamp:>=2024-06-01T12:00:00 severity:error" + aspire otel logs --search "timestamp:>=2026-06-01T12:00:00 severity:error" ``` - View logs from a standalone dashboard using the login URL (token is automatically exchanged for an API key): diff --git a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-spans.mdx b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-spans.mdx index bd519813bb..628a9c0ca9 100644 --- a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-spans.mdx +++ b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-spans.mdx @@ -137,7 +137,7 @@ The following options are available: - Filter spans by timestamp: ```bash title="Aspire CLI" - aspire otel spans --search "timestamp:>=2024-03-01T08:30:00 kind:server" + aspire otel spans --search "timestamp:>=2026-03-01T08:30:00 kind:server" ``` - View spans from a standalone dashboard using the login URL (token is automatically exchanged for an API key): diff --git a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-traces.mdx b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-traces.mdx index 29c3703ed7..27c4942767 100644 --- a/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-traces.mdx +++ b/src/frontend/src/content/docs/reference/cli/commands/aspire-otel-traces.mdx @@ -135,7 +135,7 @@ The following options are available: - Filter traces by timestamp: ```bash title="Aspire CLI" - aspire otel traces --search "timestamp:>2024-01-15T09:30:00 status:error" + aspire otel traces --search "timestamp:>2026-01-15T09:30:00 status:error" ``` - View traces from a standalone dashboard using the login URL (token is automatically exchanged for an API key): diff --git a/src/frontend/src/content/docs/reference/cli/search-filter.mdx b/src/frontend/src/content/docs/reference/cli/search-filter.mdx index f15ddae53e..3d667bb0d0 100644 --- a/src/frontend/src/content/docs/reference/cli/search-filter.mdx +++ b/src/frontend/src/content/docs/reference/cli/search-filter.mdx @@ -37,17 +37,17 @@ All terms are AND'd: every fragment and qualifier must independently match. Use the `timestamp` field qualifier to narrow structured logs, traces, and spans to a specific date/time range. The qualifier accepts ISO 8601 date or date/time strings together with a comparison operator: ```bash title="Aspire CLI" -aspire otel logs --search "timestamp:>2024-01-15T09:30:00" -aspire otel traces --search "timestamp:<=2024-06-01T12:00:00Z" -aspire otel spans --search "timestamp:>=2024-01-01 timestamp:<2025-01-01" +aspire otel logs --search "timestamp:>2026-01-15T09:30:00" +aspire otel traces --search "timestamp:<=2026-06-01T12:00:00Z" +aspire otel spans --search "timestamp:>=2026-01-01 timestamp:<2027-01-01" ``` The supported comparison operators are `>`, `>=`, `<`, and `<=`. Timestamp values are internally stored with UTC. The `timestamp` value is converted to UTC using these timezone rules: -- A value with no timezone suffix (for example `2024-01-15` or `2024-01-15T09:30:00`) is treated as local time on the dashboard server and adjusted to UTC before comparison. -- A value with a UTC offset (for example `2024-06-01T12:00:00+05:00`) is adjusted to UTC before comparison. +- A value with no timezone suffix (for example `2026-01-15` or `2026-01-15T09:30:00`) is treated as local time on the dashboard server and adjusted to UTC before comparison. +- A value with a UTC offset (for example `2026-06-01T12:00:00+05:00`) is adjusted to UTC before comparison. - A value with the `Z` suffix is treated as UTC directly. ## Console logs @@ -69,7 +69,7 @@ Available field qualifiers: `severity`, `resource`, `scope`, `message`, `trace-i aspire otel logs --search "severity:error \"connection failed\"" aspire otel logs --search "resource:api -severity:debug" aspire otel logs --search "scope:Microsoft.EntityFrameworkCore" -aspire otel logs --search "timestamp:>=2024-06-01T12:00:00 severity:error" +aspire otel logs --search "timestamp:>=2026-06-01T12:00:00 severity:error" ``` ## Traces @@ -82,7 +82,7 @@ Available field qualifiers: `name`, `resource`, `trace-id`, `status`, `duration` aspire otel traces --search "checkout" aspire otel traces --search "status:error duration:>500" aspire otel traces --search "@http.status_code:500" -aspire otel traces --search "timestamp:>2024-01-15T09:30:00 status:error" +aspire otel traces --search "timestamp:>2026-01-15T09:30:00 status:error" ``` ## Spans @@ -95,7 +95,7 @@ Available field qualifiers: `name`, `resource`, `scope`, `status`, `kind`, `trac aspire otel spans --search "@http.method:GET duration:>100 status:error" aspire otel spans --search "@db.system:postgresql" aspire otel spans --search "-kind:internal" -aspire otel spans --search "timestamp:>=2024-03-01T08:30:00 kind:server" +aspire otel spans --search "timestamp:>=2026-03-01T08:30:00 kind:server" ``` ## See also