openedge-profiler-parser
Progress OpenEdge Profiler data parsing to OpenTracing format.
Prerequisites
In order to RUN you will be enough with
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.
Run on Jaeger
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
Run on Grafana
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.
In order to DEVELOP you will need
Some kind of modern IDE that supports GO (we are using VS Code: https://code.visualstudio.com/download)
Golang engine: https://golang.org/dl/
Usage of binary (compiled) utility
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.
Usage for project developers
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
Custom configuration
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. |