Traces
Introduction
Collects the Distributed Traces telemetry from the applications to enable observability.
Getting Started
Compatibility
vuSmartMaps Supported Versions
vuSmartMaps Supported Versions
Language/Environment
Supported Versions
Supported Environments
Java
Java 8 and above
Spring Boot
Standalone JAR
Apache Tomcat (Linux)
Apache Tomcat (Windows)
JBoss/Wildfly (Linux, standalone mode)
JBoss/Wildfly (Linux, domain mode)
JBoss/Wildfly (Windows, standalone mode)
JBoss/Wildfly (Windows, domain mode)
Weblogic (standalone mode)
Weblogic (managed by admin server)
Websphere Application Server ND
Docker (requires image rebuild)
Kubernetes (using OpenTelemetry Operator)
C# / .NET
.NET Core 6.0 and above
.NET Core 6.0 and above (Linux)
.NET Core 6.0 and above (Windows)
.NET Core 6.0 and above (IIS on Windows)
Docker (requires image rebuild)
Kubernetes (using OpenTelemetry Operator)
.NET Framework 4.6.2 and above
.NET Framework 4.6.2 and above (IIS on Windows)
Go
Go 1.22
Standalone application (Linux and Windows)
Docker (requires image rebuild)
Go 1.23
Kubernetes (using OpenTelemetry Operator)
Standalone application (Linux and Windows)
Docker (requires image rebuild)
Data Collection Method
The target applications are instrumented using zero-code trace instrumentation SDKs, available for various programming languages
Prerequisites
Inputs for Configuring Data Source
- Applications Group: Enter the name of the Application group you want to monitor
- Service Name: Service name in the application.Typically in monolithic applications, the service name and application name are the same. In the microservices application, there would be one application that can have one or more services.
- SSL Required: Enable TLS communication for trace ingestion. Once enabled, trace data sent from the application to the vuSmartMaps ingestion endpoint will be securely encrypted. After enabling this feature, follow the additional instrumentation configuration steps provided in the 'TLS Configuration' section of the instrumentation guide.
- Application Services: Specify the name of your application and service that will be displayed in the observability UI. In a microservices architecture, an application can consist of multiple services. However, in the absence of microservices, each application would typically have just one service. It is possible to have the same name for both the application and service if desired.
- Language: The programming language used for developing the application service
- Application Name: Name of the target application
- Enable Tail Sampling: Select "Yes" if the sampling policies configured in the 'settings' tab are to be used to decide on traces to be stored. Select "No" to store 100% of the collected traces.
- Attributes from HTTP Header: Add the attributes from http header to be captured in spans. If you need to include multiple attributes, separate them with commas (e.g., attribute1, attributer2)
Firewall Requirement
To collect data from this O11ySource, ensure the following ports are opened:
| Source IP | Destination IP | Destination Port | Protocol | Direction | 
|---|---|---|---|---|
| Application Server | vuSmartMaps Data Collector End Point | 4317*, 4318 | TCP | Inbound | 
*Before providing the firewall requirements, please update the port based on the customer environment.
Configuring the Target
Instrument the application using the appropriate methods based on the programming language. The complete instructions can be downloaded as the package from the Traces O11ySource
Configuration Steps
Enable the O11ySource.
Select the Sources tab and press the + button to add a new application / service to be monitored.
Click on Save to create the instance. Download the package and share it with the client for instrumentation
Metrics Collected
| Name | Description | Data Type | 
|---|---|---|
| timestamp | The timestamp when the span or event occurred. | DateTime64(6) | 
| traceId | Unique identifier for a distributed trace that includes multiple spans. | String | 
| spanId | Identifier for a specific span within a trace. | String | 
| span_parentSpanId | Identifier linking this span to its parent span, indicating the hierarchical relationship in the trace. | String | 
| span_name | Name or label for the span, typically indicating the operation or activity being traced. | LowCardinality(String) | 
| span_kind | Indicates whether the span represents a client or server-side span, or other categorizations like internal or external. | LowCardinality(String) | 
| span_start_time | Timestamp marking the start time of the span. | DateTime64(6) | 
| span_end_time | Timestamp marking the end time of the span. | DateTime64(6) | 
| is_root_span | Boolean indicating if this span is the root of the trace. | Bool | 
| status_code | HTTP or application-specific status code associated with the span. | UInt8 | 
| span_durationNano | Duration of the span in nanoseconds. | UInt64 | 
| span_attributes_site | Attribute indicating the site or location related to the span. | String | 
| span_attributes_location | Further detail about the location associated with the span. | LowCardinality(String) | 
| span_attributes_library | Information about the library or framework used in the span. | String | 
| span_attributes_destination | Description of the destination related to the span. | String | 
| span_attributes_destination_url | URL associated with the destination. | String | 
| span_attributes_instrumentation_library_name | Name of the instrumentation library used to trace the span. | String | 
| span_attributes_net_peer_ip | IP address of the network peer involved in the span. | String | 
| span_attributes_net_peer_name | Name or identifier of the network peer. | String | 
| span_attributes_thread_name | Name or identifier of the thread associated with the span. | String | 
| span_attributes_code | Additional code-related information. | String | 
| span_attributes_code_function | Specific function within the code related to the span. | String | 
| span_attributes_code_namespace | Namespace or context within which the code operates. | String | 
| resource_attributes_application | Application-related information for the resource associated with the span. | LowCardinality(String) | 
| resource_attributes_host_ip | IP address of the host where the span originated. | LowCardinality(String) | 
| resource_attributes_host_name | Name of the host where the span originated. | LowCardinality(String) | 
| resource_attributes_service_name | Name of the service associated with the span. | LowCardinality(String) | 
| span_attributes_service_name | Name of the specific service or component within the span. | LowCardinality(String) | 
| resource_attributes_k8s_node_name | Kubernetes node name where the span originated. | LowCardinality(String) | 
| resource_attributes_k8s_deployment_name | Kubernetes deployment name where the span originated. | LowCardinality(String) | 
| span_attributes_transaction | Transaction or request identifier associated with the span. | String | 
| span_attributes_http_status_code | HTTP status code associated with an HTTP-related span. | UInt32 | 
| span_attributes_http_host | Host information associated with an HTTP-related span. | String | 
| span_attributes_http_target | Target or endpoint information associated with an HTTP-related span. | String | 
| span_attributes_http_route | Route or path information associated with an HTTP-related span. | String | 
| span_attributes_http_method | HTTP method (GET, POST, etc.) associated with an HTTP-related span. | LowCardinality(String) | 
| span_attributes_http_status_text | Textual representation of the HTTP status associated with an HTTP-related span. | String | 
| span_attributes_http_url | URL associated with an HTTP-related span. | String | 
| span_attributes_http_user_agent | User agent information associated with an HTTP-related span. | String | 
| span_attributes_db_name | Database name associated with a database-related span. | LowCardinality(String) | 
| span_attributes_db_operation | Operation performed on the database (query, insert, etc.). | LowCardinality(String) | 
| span_attributes_db_statement | Database statement executed within the span. | LowCardinality(String) | 
| span_attributes_db_system | Database management system (DBMS) associated with the span. | LowCardinality(String) | 
| span_attributes_db_sql | SQL query or command associated with a database-related span. | LowCardinality(String) | 
| span_attributes_messaging_destination | Destination or queue name for messaging-related spans. | LowCardinality(String) | 
| span_attributes_messaging_destination_kind | Type or kind of messaging destination (queue, topic, etc.). | LowCardinality(String) | 
| span_attributes_messaging_operation | Operation performed within the messaging system (send, receive, etc.). | LowCardinality(String) | 
| span_attributes_messaging_system | Messaging system (Kafka, RabbitMQ, etc.) associated with the span. | LowCardinality(String) | 
| span_errorSpan | Boolean indicating if the span represents an error or exception. | Bool | 
| span_exception_message | Message associated with an exception or error. | String | 
| span_exception_stacktrace | Stack trace providing detailed information about the exception. | String | 
| span_exception_time | Timestamp indicating when the exception occurred. | DateTime64(6) | 
| span_exception_type | Type or class of the exception. | LowCardinality(String) | 
| resource_attributes_env | Environment or deployment environment (development, production, etc.) associated with the span. | LowCardinality(String) | 
| timestamp | The timestamp when the span or event occurred. | DateTime64(9) | 
| application | Name of the application generating the span. | String | 
| service | Name of the service generating the span. | String | 
| span_name | Name or label for the span, typically indicating the operation or activity being traced. | String | 
| span_kind | Indicates whether the span represents a client or server-side span, or other categorizations like internal or external. | String | 
| host_name | Name of the host where the span originated. | String | 
| http_status_code | HTTP status code associated with an HTTP-related span. | Nullable(Int32) | 
| status_code | HTTP or application-specific status code associated with the span. | String | 
| start_time | Timestamp marking the start time of the span. | DateTime64(9) | 
| call_count | Number of calls or invocations related to the span. | UInt64 | 
| error_count | Number of errors encountered related to the span. | UInt64 | 
| duration_sum | Sum of durations for similar operations or spans. | Float64 | 
| duration_bucket_counts | Distribution of durations into predefined buckets. | Array(UInt64) | 
| duration_explicit_bounds | Explicit boundaries defining the duration buckets. | Array(Float64) | 
| environment | The environment in which the span or event occurred. | LowCardinality(String) | 
| host_ip | IP address of the host where the span originated. | LowCardinality(String) | 
| metadata | Additional metadata or information related to the span, potentially including custom tags or labels. | JSON | 
| application | Name of the application generating the span. | String | 
| service | Name of the service generating the span. | String | 
| host_ip | IP address of the host where the span originated. | String | 
| host_name | Name of the host where the span originated. | String | 
| timestamp | The timestamp when the span or event occurred. | DateTime64(9) | 
| environment | The environment in which the span or event occurred. | LowCardinality(String) | 
| span_name | Name or label for the span, typically indicating the operation or activity being traced. | String | 
| spanId | Identifier for a specific span within a trace. | String | 
| traceId | Unique identifier for a distributed trace that includes multiple spans. | String | 
