-
Notifications
You must be signed in to change notification settings - Fork 3
Migrate tester OTel export from Honeycomb to SigNoz #1519
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 1 commit
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
5a5112b
Migrate tester OTel export from Honeycomb to SigNoz
jay-418 090cd59
services: rename dangling retryWaitSeconds to minRetryWait
jay-418 3387c40
tester: reuse caller's runId; drop uuid dep
jay-418 aebdfec
Merge remote-tracking branch 'origin/main' into jay/tester-signoz
jay-418 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🌐 Web query:
What is the official SigNoz Cloud traces explorer URL syntax for filtering by an attribute named pinger-id?💡 Result:
In SigNoz Cloud Traces Explorer, you filter by a custom attribute such as "pinger-id" using the standard expression-based filter syntax [1][2]. To filter by this attribute, enter the following into the filter bar: attribute.pinger-id = 'your-value-here' Key points for the syntax: 1. Disambiguation: If the attribute exists as both a resource attribute and a span attribute, SigNoz requires you to use a prefix [3]. Span-level attributes are generally accessed using the
attribute.prefix [3]. 2. Operators: You can use standard comparison operators such as=,!=,IN,NOT_IN,LIKE, andEXISTS[4][5]. For an exact match with a specific value, use the=operator with the value enclosed in single quotes [4][5]. 3. Query Builder: The Trace Explorer's filter bar supports autocomplete, which will suggest attributes (including custom ones) as you type [1][2]. 4. Trace Details: Alternatively, if you are already viewing a specific trace, you can find the attribute in the span details and click the option to "Filter for Value," which will automatically add the correct filter to your current view [6].Citations:
🏁 Script executed:
Repository: getlantern/flashlight
Length of output: 2803
🌐 Web query:
site:signoz.io/docs traces explorer URL query parameter filter attribute URL syntax💡 Result:
In SigNoz, the Trace Explorer supports filtering via URL query parameters by programmatically constructing a URL with specific parameters, most notably a URI-encoded
compositeQuery[1]. To generate a direct URL that pre-loads the Trace Explorer with specific filters: 1. Base URL: The base route typically follows the patternhttps://[Your-SigNoz-Domain]/traces-explorer[1]. 2. Required Parameters: -startTime: The start time in milliseconds [1]. -endTime: The end time in milliseconds [1]. -compositeQuery: A JSON structure that defines the filter expression and other query settings [2][1]. This parameter must be URI-encoded twice [1]. -panelTypes: Defines the view type (e.g., "list", "graph", or "table") and should be URI-encoded once [1]. ThecompositeQueryJSON structure includes afilterobject with anexpressionfield [2]. The filter expression syntax uses field names, operators, and values [3][4]. Commonly used filter syntax includes: - Exact match:service.name = 'payment-service'[3][5] - Multiple conditions:service.name = 'payment-service' AND http.status_code >= 400[3][4] - Existence checks:db.system EXISTS[5] - Substring matching:name LIKE '%payment%'[5] - Set inclusion:http_method IN ('GET', 'POST')[5] For detailed query construction, you can reference the official SigNoz Query Builder and Search Syntax documentation [3][4][6]. When generating these URLs programmatically, ensure all JSON data structures within thecompositeQueryparameter are properly formatted and encoded according to the requirement [1].Citations:
🌐 Web query:
site:signoz.io/docs "compositeQuery" "traces-explorer" "filter" URL💡 Result:
In the context of SigNoz, compositeQuery is a JSON structure used as a parameter to define queries programmatically, often used when constructing URLs for the Explorer pages (such as the Logs Explorer) or when interacting with the Query Range API [1][2][3]. The compositeQuery parameter allows you to pass a serialized, URL-encoded JSON object that specifies the query criteria, including data sources, aggregations, groupings, and filters [2][3]. When creating a URL for the Explorer page, the structure typically follows this format [2]: https://[Your-SigNoz-Domain]/[explorer-page]?startTime=[start-time]&endTime=[end-time]&panelTypes=[encoded-panelTypes]&compositeQuery=[encoded-compositeQuery] Key components of the compositeQuery JSON structure include: - queries: An array of query envelopes, which define the specific queries to be executed [3]. - builder_query: A type of query that allows you to specify signal types (e.g., logs, traces), aggregations, and complex filters [3]. - filters: Within the builder query, filters are defined using a structured format consisting of keys, operators (e.g., =,!=, LIKE), and values [2][3]. For filtering in the Traces Explorer specifically, while you can construct queries using the compositeQuery JSON format via the API [3], interactive filtering within the user interface is typically performed using the filter bar (which supports expression-based syntax like service.name = 'frontend') or the quick filters available in the left panel [4][5][6]. Note that unlike Logs Explorer, Traces Explorer generally requires field-based filters rather than raw full-text search [6].
Citations:
🏁 Script executed:
Repository: getlantern/flashlight
Length of output: 1758
🌐 Web query:
site:signoz.io/docs/logs-management/logs-api/logs-url-for-explorer-page compositeQuery double URI encoded example💡 Result:
Double URI encoding is a process where a string is URI encoded twice, often required by certain API frameworks or web applications to ensure that complex data structures—such as JSON objects—are transmitted correctly without being misinterpreted as URL delimiters or control characters [1]. In the context of the SigNoz logs explorer API, the compositeQuery parameter requires double URI encoding [1]. This is because compositeQuery holds a JSON object containing builderQueries, and encoding it twice ensures that the special characters inherent in the JSON structure (like braces, quotes, and colons) are safely handled when appended to the URL [1]. For example, if you have a JSON query object: {"builderQueries":{"A":{"queryName":"A","expression":"sum(rate(http_requests_total[5m]))"}}} 1. First Encoding: Converts special characters to URI-safe sequences (e.g., %7B, %22). 2. Second Encoding: Encodes the percent signs themselves (e.g., %257B, %2522). By the time it is appended to the URL, the encoded value would look like: %257B%2522builderQueries%2522%253A%257B%2522A%2522%253A%257B%2522queryName%2522%253A%2522A%2522%252C%2522expression%2522%253A%2522sum(rate(http_requests_total%255B5m%255D))%2522%257D%257D%257D, [1]. This ensures the web server or application receiving the request can decode it through the necessary layers of middleware without prematurely parsing the JSON structure [1].
Citations:
🌐 Web query:
SigNoz traces explorer URL compositeQuery queryData dataSource traces expression attribute custom attribute💡 Result:
In SigNoz, the Traces Explorer and underlying Query Builder use a structured
compositeQueryobject to define data requests [1][2]. This object encapsulates the query logic, including data source identification, filtering, and aggregation settings [2][3]. Key components of the SigNoz query structure include: compositeQuery: This is the root object for query requests in the SigNoz API [1][2]. It contains aqueriesarray, which holds one or morequeryEnvelopeobjects [1][2]. Each envelope specifies the type of query (e.g.,builder_query) and its configuration [2]. dataSource: This specifies the telemetry signal type being queried [2][4]. For traces, thesignalfield is set totraces[5][2]. queryData: This refers to the configuration data used by the Query Builder UI to construct the query [4]. It includes fields likeaggregateOperator,aggregateAttribute,filters,groupBy, andexpression[4][6]. When processed for an API request, this data is converted into a structuredTraceAggregationor filter expression [6]. Expression and Attributes: - Filter Expression: Traces can be filtered using expressions that support logical operators (AND, OR, NOT) and attribute comparisons (e.g.,deployment_name = 'hotrod' AND has_error = true) [5][7]. - Aggregation Expression: For time series or tabular data, theexpressionfield in aTraceAggregationdefines the aggregation, typically formatted asoperator(attribute)(e.g.,count(http_method)orp99(duration)) [1][6]. - Custom Attributes: Custom attributes associated with spans are treated as fields within the query builder [2]. They can be selected, filtered, or used in aggregations just like standard span attributes [7][8]. Recent updates to the SigNoz interface allow users to interact with span attributes directly in the Span Details drawer, enabling quick actions such as filtering for/out or grouping by specific attribute values [9][8]. When programmatic access is required, theTrace APIuses the samecompositeQuerymodel to fetch data [1][5]. TherequestType(e.g.,rawfor individual spans ortime_seriesfor aggregated charts) determines how thecompositeQueryis executed [1][10].Citations:
🌐 Web query:
site:github.com/SigNoz/signoz "traces-explorer" "compositeQuery"💡 Result:
In SigNoz, compositeQuery is a core data structure used to represent complex queries within the application's explorers, including the Traces Explorer [1][2]. It serves as a serialized object that encapsulates the complete query state, which is often passed as a URL parameter (typically named compositeQuery) to maintain state across page navigation, deep linking, and saved views [1][3][4]. Key characteristics of compositeQuery include: 1. Query Encapsulation: It stores configuration for multiple query types, such as builder queries, PromQL, or ClickHouse SQL, often within a structure containing arrays of query definitions [5][2]. 2. URL State Management: Because explorers (Traces, Logs, etc.) are stateful, the application encodes the JSON representation of the compositeQuery into a URL-safe string to allow users to share specific views or bookmark their current exploration state [1][4]. 3. Integration with Saved Views: When a user saves a view, the compositeQuery is stored in the application's metadata (e.g., in a database) to precisely reproduce the user's selected filters, aggregation operators, and layout settings when the view is later loaded [1][2]. 4. Technical Usage: Developers interact with it via mapping functions (e.g., mapCompositeQueryFromQuery) that transform the current UI state into this serializable format [1]. It is also used in backend rule processing, where alerts may generate links that include a compositeQuery to direct users to the relevant trace or log data in the explorer [3]. If you are working with SigNoz APIs or deep linking, you generally construct this object as a JSON payload, stringify it, and encode it into the URL parameter [5][1]. Issues involving this parameter often relate to improper serialization or handling of the object when updating views or modifying explorer states [6][2].
Citations:
orderByfrom thecompositeQueryURL param — list view always opens withtimestamp:descSigNoz/signoz#12355Construct a filtered SigNoz explorer URL.
Include
startTime,endTime,panelTypes, and a URL-encodedcompositeQuerythat filterspinger-idtorunId. The current link opens the unfiltered explorer.🤖 Prompt for AI Agents