Adopt OTel cicd.* semantic conventions incl cicd.* metrics#1096
Adopt OTel cicd.* semantic conventions incl cicd.* metrics#1096cyrille-leclerc wants to merge 15 commits into
cicd.* semantic conventions incl cicd.* metrics#1096Conversation
cicd.* metricscicd.* semantic conventions incl cicd.* metrics
|
About the cardinality protection with allow & deny lists defaulting to cicd.pipeline.name=#other#, Would it be optional? I mean, if I want to grab all my jobs because I do not think the cardinality will be a problem in my case, but I do not want to add my hundred jobs to that allow list, I have an option to choose so that all job names are reported. |
We have implemented with a regular expression. It would be easy to provide a GUI to allow allo pipeline names. Current config to create metrics for all metrics: |
# Conflicts: # src/main/java/io/jenkins/plugins/opentelemetry/init/JenkinsExecutorMonitoringInitializer.java
# Conflicts: # src/main/java/io/jenkins/plugins/opentelemetry/init/JenkinsExecutorMonitoringInitializer.java # src/main/java/io/jenkins/plugins/opentelemetry/job/MonitoringRunListener.java # src/main/java/io/jenkins/plugins/opentelemetry/job/runhandler/DefaultRunHandler.java # src/main/java/io/jenkins/plugins/opentelemetry/job/runhandler/JobDslRunHandler.java # src/main/java/io/jenkins/plugins/opentelemetry/job/runhandler/MatrixRunHandler.java # src/main/java/io/jenkins/plugins/opentelemetry/semconv/ExtendedJenkinsAttributes.java
|
Anything I can help with? |
|
With pleasure.
I'll be happy to do a knowledge transfer on a video call to help |
|
Hi @cyrille-leclerc, thank you for the detailed notes on adopting I noticed this PR is out-of-date with main and @kamphaus has built
I would be happy to help with documentation or testing once |
The semantic conventions do not make a distinction between UpDownCounter and ObservableUpDownCounter so |
Add OTel
cicd.*semantic conventions includingcicd.*metrics.https://opentelemetry.io/docs/specs/semconv/cicd/cicd-metrics/
TODO
cicd.*metrics.Testing done
Submitter checklist
Lessons learned adopting the OTel CI/CD specs
cicd.pipeline.run.duration1D, 2D, 4D, 8D, 16D, 32D, 64D, 128D, 256D, 512D, 1024D, 2048D, 4096D, 8192Dsecondscicd.pipeline.name:cicd.pipeline.name=#other#cicd.pipeline.run.state: as we record the metric at the end of the execution of the pipeline run, we always havecicd.pipeline.run.duration= finalizingand the real value should befinalizederror.type: not yet implementedcicd.pipeline.run.activecicd.pipeline.name:cicd.pipeline.name=#other#cicd.pipeline.run.state: nothing special to saycicd.worker.countUpDownCounterbut implementation in Jenkins is more of a Gauge, a cumulative value captured by a daemon thread.macos,gpu,a-special-of a build-agent...) and we also report executor status per label. It's not covered by the OTel CI/CD specs.cicd.worker.statedownbut the generated java code isofflinecicd.pipeline.run.errorscicd.pipeline.namecicd.pipeline.name=#other#error.type: basic instrumentation: just the Jenkins statusesunstableandfailurecicd.system.errorsOther metrics
We need other metrics to report on jenkins health, particularly on build nodes which are holding the build workers
Span attributes
TODO