Progress OpenEdge Profiler data parsing to OpenTracing format.
Docker: https://www.docker.com/products/docker-desktop Zipkin: https://hub.docker.com/r/openzipkin/zipkin
To start zipkin docker image just run this command while having docker deamon active:
docker run -d -p 9411:9411 openzipkin/zipkin
NOTE: if you are going to change port, update information in code accordingly. At the moment there's no single place/properties file for setup of constants.
Jaeger docker image automatically exposes Zipkin compatible REST API, so all you need to do is start docker image using this command:
docker run -d -e COLLECTOR_ZIPKIN_HOST_PORT=:9411 -p 16686:16686 -p 9411:9411 jaegertracing/all-in-one
To run on Grafana, you will need to create docker-compose.yml file with services for Zipkin and Grafana (example in docker-compose-sample.yml). Then run:
docker-compose up -d
After this, you have to add Zipkin data source in Grafana with URL zipkin:9411.
Some kind of modern IDE that supports GO (we are using VS Code: https://code.visualstudio.com/download)
Golang engine: https://golang.org/dl/
To run binary file on Unix systems use these commands:
chmod +x profiler-opentracing
profiler-opentracing /path/to/profiler/output/file -config=./config.yaml
To run binary file on Windows systems run this command:
profiler-opentracing.exe \path\to\profiler\output\file -config=./config.yamll
-config
Flag passes given configuration. If this flag is not provided then default values will be used.
NOTE: unix-windows slashes should be directed different ways. Keep this in mind based on your system To run parser run:
cd progress-opentracing-profiler
go run .\cmd\parse.go .\profilerFiles\simple_oop.prof .\config\config.yaml
To run tests:
cd progress-opentracing-profiler
go test ./tests/...
Or if you want to test specific module, then (-v flag is not mandatory, but it gives the details of the tests):
cd progress-opentracing-profiler
go test -v ./tests/<module_name>
Run linter:
golangci-lint run
As for now custom configuration can be provided in one of 2 ways:
- Setting environment variables
- Providing config.yaml file in the root directory of the repository or alongside binary file. (config-sample.yaml provided in repository)
Supported configuration values:
All configuration values are under zipkin tag.
Name | Default value | Description |
---|---|---|
url | http://localhost:9411 | Default URL of Zipkin container with port 9411. If Zipkin configuration has been changed, the configuration values have to be changed too. |
endpoint | /api/v2/spans | Endpoint of Zipkin span collector. It should NOT be changed. |
hostPort | localhost:80 | It's used for Zipkin tag, in this case, it shows the address and port of traced application's endpoint. It can and should be changed. |
serviceName | TestService2 | It's used for naming the trace, can and should be changed. |