Zipkin is a distributed tracing system that helps gather timing data needed to troubleshoot latency problems in service architecture. This guide provides instructions for deploying Zipkin and enabling tracing across BPA platform services.
The @opentelemetry/api package is the core API for OpenTelemetry in Node.js. It provides interfaces and classes for creating and managing traces, spans, and context propagation. This package allows Developers to instrument their applications to collect telemetry data such as traces and metrics, which can then be exported to backends like Zipkin for analysis.
Key components of Zipkin includes:
To deploy Zipkin and enable tracing, the following network requirements are required:
cd /opt/bpa/bpa-{build_version}/scripts
./startbpa.1node.sh monitoring
docker ps | grep tracers-zipkin
docker logs tracers-zipkin -f
The BPA application supports flexible tracing configuration through “tracingConfig.json” files. The system implements a hierarchical configuration loading mechanism with three (3) levels of precedence to accommodate different deployment scenarios.
The application loads the tracing configurations in the following order based on precedence:
Path: bpa-helm-chart/charts/<service name>/public_conf
Path: bpa-helm-chart/bpa/conf/common/globals/tracingConfig.json
Path: ../conf/tracingConfig.json (fallback)
If any configuration file is malformed or unreadable, the system:
Create or update the “tracingConfig.json” file with the following content in the pod’s folder path:
bpa-helm-chart/charts/<service name>/public_conf/
Examples:
{
"enable": true
}
{
"enable": false
}
After placing the “tracingConfig.json” files in the appropriate locations, apply the changes using the Helm upgrade command:
helm upgrade bpa-rel --namespace bpa-ns /opt/bpa-helm-chart
Command Breakdown:
In the following Helm chart path, edit the Helm values in the “values.yaml” file to enable monitoring:
yaml
global:
enableMonitoring: true
Deploy the Zipkin service using the following Helm command:
helm install bpa-rel --create-namespace --namespace bpa-ns <helm chart absolute path>
Use the following commands to verify deployment:
kubectl get pods -n bpa-ns | grep tracers-zipkin
kubectl get svc -n bpa-ns | grep tracers-zipkin
To view pod logs, use the following command:
kubectl logs -n bpa-ns deployment/tracers-zipkin -f
To check service endpoints, use the following command:
kubectl describe svc tracers-zipkin -n bpa-ns
URL: https://<SERVER IP>:9412/zipkin/
URL: https://<cluster-ip>:30900/zipkin/
The Zipkin dashboard provides a UI to search and visualize traces. Key components include:
Service Name
Tracers are responsible for creating and managing spans. A tracer is associated with a specific service or application component. Spans represent a single unit of work or operation within a trace. Each span contains information such as operation name, start and end time, attributes, and parent-child relationships with other spans.
Revision | Publish Date | Comments |
---|---|---|
1.0 |
24-Sep-2025
|
Initial Release |