jenkinsci / opentelemetry-plugin

Monitor and observe Jenkins with OpenTelemetry.
https://plugins.jenkins.io/opentelemetry/
Apache License 2.0
98 stars 50 forks source link

BlueOcean view is not supported while using the ElasticLogs backend #338

Closed v1v closed 2 years ago

v1v commented 2 years ago

Jenkins and plugins versions report

Environment tag: "2.319.3-jdk11" ```text Jenkins: 2.319.3 OS: Linux - 5.4.144+ --- ace-editor:1.1 ansicolor:1.0.1 antisamy-markup-formatter:2.7 apache-httpcomponents-client-4-api:4.5.13-1.0 artifact-manager-s3:1.16.1 authentication-tokens:1.4 authorize-project:1.4.0 aws-credentials:189.v3551d5642995 aws-global-configuration:1.7 aws-java-sdk:1.12.148-310.v5e3b_c2681d79 aws-java-sdk-cloudformation:1.12.148-310.v5e3b_c2681d79 aws-java-sdk-codebuild:1.12.148-310.v5e3b_c2681d79 aws-java-sdk-ec2:1.12.148-310.v5e3b_c2681d79 aws-java-sdk-ecr:1.12.148-310.v5e3b_c2681d79 aws-java-sdk-ecs:1.12.148-310.v5e3b_c2681d79 aws-java-sdk-elasticbeanstalk:1.12.148-310.v5e3b_c2681d79 aws-java-sdk-iam:1.12.148-310.v5e3b_c2681d79 aws-java-sdk-logs:1.12.148-310.v5e3b_c2681d79 aws-java-sdk-minimal:1.12.148-310.v5e3b_c2681d79 aws-java-sdk-ssm:1.12.148-310.v5e3b_c2681d79 blueocean:1.25.2 blueocean-autofavorite:1.2.5 blueocean-bitbucket-pipeline:1.25.2 blueocean-commons:1.25.2 blueocean-config:1.25.2 blueocean-core-js:1.25.2 blueocean-dashboard:1.25.2 blueocean-display-url:2.4.1 blueocean-events:1.25.2 blueocean-git-pipeline:1.25.2 blueocean-github-pipeline:1.25.2 blueocean-i18n:1.25.2 blueocean-jwt:1.25.2 blueocean-personalization:1.25.2 blueocean-pipeline-api-impl:1.25.2 blueocean-pipeline-editor:1.25.2 blueocean-pipeline-scm-api:1.25.2 blueocean-rest:1.25.2 blueocean-rest-impl:1.25.2 blueocean-web:1.25.2 bootstrap4-api:4.6.0-3 bootstrap5-api:5.1.3-6 bouncycastle-api:2.25 branch-api:2.7.0 caffeine-api:2.9.2-29.v717aac953ff3 checks-api:1.7.2 cloudbees-bitbucket-branch-source:756.v081ee2205040 cloudbees-disk-usage-simple:0.10 cloudbees-folder:6.708.ve61636eb_65a_5 command-launcher:1.6 configuration-as-code:1346.ve8cfa_3473c94 copyartifact:1.46.2 credentials:1074.v60e6c29b_b_44b_ credentials-binding:1.27.1 disable-github-multibranch-status:1.2 display-url-api:2.3.5 docker-commons:1.19 docker-workflow:1.28 durable-task:493.v195aefbb0ff2 echarts-api:5.3.0-2 extended-read-permission:3.2 favorite:2.3.3 font-awesome-api:6.0.0-1 git:4.10.3 git-client:3.11.0 git-server:1.10 github:1.34.2 github-api:1.301-378.v9807bd746da5 github-branch-source:2.11.4 google-compute-engine:4.3.8 google-metadata-plugin:0.3.1 google-oauth-plugin:1.0.6 google-storage-plugin:1.5.6 handlebars:3.0.8 handy-uri-templates-2-api:2.1.8-1.0 hashicorp-vault-plugin:336.v182c0fbaaeb7 htmlpublisher:1.29 inline-pipeline:1.0.1 jackson2-api:2.13.1-246.va8a9f3eaf46a javax-activation-api:1.2.0-2 javax-mail-api:1.6.2-5 jaxb:2.3.0.1 jdk-tool:1.5 jenkins-design-language:1.25.2 jjwt-api:0.11.2-9.c8b45b8bb173 job-dsl:1.78.3 jquery3-api:3.6.0-2 jsch:0.1.55.2 junit:1.54 junit-otel-reporter:0.1.0-SNAPSHOT (private-9453dcd5-mdelapenya) kubernetes:3538.v6b_005a_ddced1 kubernetes-client-api:5.11.2-182.v0f1cf4c5904e kubernetes-credentials:0.9.0 lockable-resources:2.14 mailer:408.vd726a_1130320 mask-passwords:3.0 matrix-auth:3.0.1 matrix-project:1.20 metrics:4.1.6.1 mock-security-realm:1.6 momentjs:1.1.1 monitoring:1.90.0 oauth-credentials:0.5 okhttp-api:4.9.3-105.vb96869f8ac3a opentelemetry:2.0.0-beta-2-rc525.d88a6385cb2f pipeline-build-step:2.16 pipeline-github:2.8-138.d766e30bb08b pipeline-githubnotify-step:1.0.5 pipeline-graph-analysis:188.v3a01e7973f2c pipeline-input-step:446.vf27b_0b_83500e pipeline-milestone-step:100.v60a_03cd446e1 pipeline-model-api:1.9.3 pipeline-model-definition:1.9.3 pipeline-model-extensions:1.9.3 pipeline-rest-api:2.22 pipeline-stage-step:291.vf0a8a7aeeb50 pipeline-stage-tags-metadata:1.9.3 pipeline-stage-view:2.22 pipeline-utility-steps:2.12.0 plain-credentials:1.8 plot:2.1.10 plugin-util-api:2.14.0 popper-api:1.16.1-2 popper2-api:2.11.2-1 pubsub-light:1.16 role-strategy:3.2.0 scm-api:595.vd5a_df5eb_0e39 script-security:1138.v8e727069a_025 slack:602.v0da_f7458945d snakeyaml-api:1.29.1 sse-gateway:1.25 ssh-agent:1.24.1 ssh-credentials:1.19 ssh-slaves:1.33.0 sshd:3.1.0 structs:308.v852b473a2b8c timestamper:1.17 token-macro:277.v7c8f82a_d66b_3 trilead-api:1.0.13 variant:1.4 workflow-aggregator:2.6 workflow-api:1138.v619fd5201b_2f workflow-basic-steps:2.24 workflow-cps:2659.v52d3de6044d0 workflow-cps-global-lib:564.ve62a_4eb_b_e039 workflow-durable-task-step:1121.va_65b_d2701486 workflow-job:1145.v7f2433caa07f workflow-multibranch:711.vdfef37cda_816 workflow-scm-step:2.13 workflow-step-api:622.vb_8e7c15b_c95a_ workflow-support:813.vb_d7c3d2984a_0 ```

What Operating System are you using (both controller, and any agents involved in the problem)?

docker k8s GCP

Reproduction steps

  1. Configure the Elastic logs backend
  2. Runb a build
  3. Go to Blue Ocean

Expected Results

Report the output similar to what the traidtional console output shows

Actual Results

image

java.lang.UnsupportedOperationException: Not yet implemented
    at io.jenkins.plugins.opentelemetry.backend.elastic.ElasticsearchLogStorageRetriever.stepLog(ElasticsearchLogStorageRetriever.java:246)
    at io.jenkins.plugins.opentelemetry.backend.elastic.ElasticsearchLogStorageRetriever.stepLog(ElasticsearchLogStorageRetriever.java:76)
    at io.jenkins.plugins.opentelemetry.job.log.OtelLogStorage.stepLog(OtelLogStorage.java:166)
    at org.jenkinsci.plugins.workflow.support.actions.LogStorageAction.getLogText(LogStorageAction.java:62)
    at io.jenkins.blueocean.rest.impl.pipeline.PipelineStepImpl.getLog(PipelineStepImpl.java:144)
    at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710)
    at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:393)
    at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:405)
    at org.kohsuke.stapler.MetaClass$2.doDispatch(MetaClass.java:220)

Anything else?

No response

cyrille-leclerc commented 2 years ago

@kuisathaverat I was thinking of using this additional feature to evolve

kuisathaverat commented 2 years ago

It makes sense, it allows filtering step logs. It was the solution I made on the previous plugin.

cyrille-leclerc commented 2 years ago

Fixed in 2.1.0