Products > vuApp360 > vuApp360 Deployment and Configuration
1. Getting Started with vuSmartMaps™
3. Console
5. Configuration
6. Data Management
9. Monitoring and Managing vuSmartMaps™
Traces O11ySource collects Distributed Traces telemetry from applications to provide comprehensive observability, offering deep insights into application performance through standard applications performance monitoring dashboards.
3. Download the client instrumentation package for the selected language from the agent configuration wizard.
4. Follow the instructions provided in the client instrumentation package.
Following these steps, you have successfully enabled Traces O11ySource and configured the data sources for real-time application performance monitoring.
Sampling configuration allows the system to selectively decide on which traces to store. This helps in reducing the amount of data kept in the system.
There are two types of sampling policies that can be configured for traces:
A separate page for sampling-related configurations is introduced. These configurations are controlled from the Settings tab on the Traces O11ySource page. The Settings tab includes three sections:
Sampling Policies configured here allow vuSmartMaps to intelligently decide on which traces to store, helping to reduce the amount of data kept in the system by selecting only important traces. This is an optional functionality. If no sampling policies are configured, vuSmartMaps will store 100% of the traces collected.
Sampling policies can use rules defined inline within them or refer to rules defined in the Sampling Rules section. Using rules from sampling rules in policies enables users to define compound policies that can refer to more than one rule. When multiple sampling policies are configured, vuSmartMaps will apply all the policies to all traces received and will take a final decision based on the following:
To configure a new sampling policy, use the + button and provide the following details in the modal:
Sampling rules provide a way to define individual rules that can be referred to in Sampling Policies to form compound rules. The rules defined in Sampling Rules are not used unless referred to by a policy in Sampling Policies. Using rules from Sampling Rules in policies enables users to define compound policies that can refer to more than one rule.
To configure a new sampling rule, use the + button and provide the following details in the modal:
The Additional Configuration section can be used to control data enrichments and transformations done on traces received. Users can add optional YAML configurations. Below is an example:
transform: trace_statements: - context: span statements: - set(attributes["instrumentation_library_name"], instrumentation_scope.name) - set(attributes["library"], attributes["db.system"]) - set(attributes["library"], attributes["messaging.system"]) - set(attributes["library"], "Express") where instrumentation_scope.name == "@opentelemetry/instrumentation-express" - set(attributes["library"], "MongoDB") where instrumentation_scope.name == "io.opentelemetry.mongo-3.1" - set(attributes["library"], "Go-kit") where instrumentation_scope.name == "go.opentelemetry.io/contrib/instrumentation/github.com/go-kit/kit/otelkit" - set(attributes["library"], "RabbitMQ") where instrumentation_scope.name == "io.opentelemetry.rabbitmq-2.7" - set(attributes["library"], "NodeJS HTTP Client / Server") where instrumentation_scope.name == "@opentelemetry/instrumentation-http" - set(attributes["library"], "Redis") where instrumentation_scope.name == "@opentelemetry/instrumentation-redis" - set(attributes["library"], "Spring MVC") where instrumentation_scope.name == "io.opentelemetry.spring-webmvc-3.1" - set(attributes["library"], "Tomcat") where instrumentation_scope.name == "io.opentelemetry.tomcat-7.0" - set(attributes["library"], "Servlet") where instrumentation_scope.name == "io.opentelemetry.servlet-3.0" - set(attributes["library"], attributes["db.system"]) where instrumentation_scope.name == "io.opentelemetry.jdbc" - set(attributes["library"], "Spring Data") where instrumentation_scope.name == "io.opentelemetry.spring-data-1.8" - set(attributes["library"], "Hibernate") where instrumentation_scope.name == "io.opentelemetry.hibernate-4.0" - set(attributes["library"], "Go HTTP Client / Server") where instrumentation_scope.name == "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" - set(attributes["library"], "Spring Scheduling") where instrumentation_scope.name == "io.opentelemetry.spring-scheduling-3.1 1.14.0-alpha" - set(attributes["destination"], attributes["db.system"]) - set(attributes["destination"], attributes["messaging.system"]) - set(attributes["destination"], attributes["net.peer.name"]) - set(attributes["destination"], replace_match(attributes["http.url"], "https?://[^/]+/([^/]+)", "$1")) - set(attributes["transaction"], Concat([attributes["http.method"], attributes["http.target"]], " ")) where (attributes["http.target"] != nil and attributes["http.method"] != nil and attributes["http.target"] != "") - set(attributes["transaction"], Concat([attributes["http.method"], attributes["http.route"]], " ")) where (attributes["http.route"] != nil and attributes["http.method"] != nil and attributes["http.route"] != "") - set(attributes["site"], "default")
This configuration enriches and transforms trace data, making it more meaningful and useful for analysis.
The Settings tab for Traces O11ySource provides a centralized location for configuring sampling policies, rules, and additional configurations. This setup simplifies the process, reduces user confusion, and enhances the ability to manage and control the data stored in the system effectively. By intelligently sampling traces, users can ensure that they are storing only the most relevant and important data, optimizing both storage and analysis capabilities.
java -javaagent:path/to/vunet-opentelemetry-javaagent.jar -Dotel.resource.attributes=application=<APPLICATION_NAME> -Dotel.service.name=<SERVICE_NAME> -Dotel.metrics.exporter=none -Dotel.exporter.otlp.endpoint={{data.TRACES_INGESTION_ENDPOINT}} -jar app.jar
💡Note: It is to be noted that the above command needs to be run in a single-line command in one instance.
Ensure to update the placeholders:
Example:
java -javaagent:vunet-opentelemetry-javaagent.jar -Dotel.resource.attributes=application=UPI -Dotel.service.name=upi-switch -Dotel.metrics.exporter=none -Dotel.exporter.otlp.endpoint=http://10.0.0.1:4317 -jar upi.jar
If your application is running in Docker, modify the Dockerfile:
COPY ./opentelemetry-javaagent.jar /usr/local/lib/opentelemetry-javaagent.jar ENV JAVA_TOOL_OPTIONS "-javaagent:/usr/local/lib/opentelemetry-javaagent.jar" ENV OTEL_RESOURCE_ATTRIBUTES "application=<Application Name>" ENV OTEL_SERVICE_NAME "<Service Name>" ENV OTEL_EXPORTER_OTLP_ENDPOINT "{{data.TRACES_INGESTION_ENDPOINT}}" ENV OTEL_METRICS_EXPORTER "none" ENTRYPOINT ["java","-Djava.security.egd=file:/dev/urandom","-jar","./app.jar", "--port=80"]
Ensure to update the placeholders:
COPY ./agent/opentelemetry-javaagent.jar ./opentelemetry-javaagent.jar
env: - name: JAVA_TOOL_OPTIONS value: "-javaagent:/usr/local/lib/vunet-opentelemetry-javaagent-1.18.0.jar -Dotel.instrumentation.runtime-metrics.enabled=true" - name: HOST_IP valueFrom: fieldRef: fieldPath: status.hostIP - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: POD_UID valueFrom: fieldRef: fieldPath: metadata.uid - name: OTEL_RESOURCE_ATTRIBUTES value: "service.name=<SERVICE_NAME>,service.version=<SERVICE_VERSION>,application=<APPLICATION_NAME>,service.instance.id=$(POD_NAME),k8s.pod.uid=$(POD_UID)" - name: OTEL_TRACES_EXPORTER value: otlp - name: OTEL_METRICS_EXPORTER value: otlp - name: OTEL_LOGS_EXPORTER value: none - name: OTEL_EXPORTER_OTLP_ENDPOINT value: {{data.TRACES_INGESTION_ENDPOINT}} - name: OTEL_LOG_LEVEL value: debug - name: OTEL_METRIC_EXPORT_INTERVAL value: "60000"
Following these steps, you have configured the application to be observed with vuApp360.
Browse through our resources to learn how you can accelerate digital transformation within your organisation.
VuNet’s Business-Centric Observability platform, vuSmartMaps™ seamlessly links IT performance to business metrics and business journey performance. It empowers SRE and IT Ops teams to improve service success rates and transaction response times, while simultaneously providing business teams with critical, real-time insights. This enables faster incident detection and response.