Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[tracing] support grpc protocol endpoint #7721

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

TianxiangShen
Copy link

@TianxiangShen TianxiangShen commented Feb 27, 2024

Changes

This PR introduces support for gRPC-based tracing providers in addition to the existing HTTP-based Jaeger tracing. The main changes include modifications to the reinitialize function and the addition of a new function creategRPCTracerProvider. Previously, tracing configuration was limited to HTTP endpoints for Jaeger, which restricted usage in environments where the trace collector only supports the gRPC protocol. These changes enable Tekton to be more versatile in its support for tracing backends, catering to a broader range of tracing infrastructure.

The reinitialize function now parses the endpoint's scheme to determine whether to initialize an HTTP or gRPC tracer provider. For gRPC, the creategRPCTracerProvider function sets up a tracer provider using the OpenTelemetry protocol (OTLP) over gRPC, without requiring TLS credentials for simplicity and ease of integration. This modification ensures that Tekton can integrate with tracing systems that communicate over gRPC, enhancing its compatibility and flexibility in observability configurations.

Submitter Checklist

  • Documentation has been updated to reflect the changes for users, including any changes to minimum requirements.
  • Added comprehensive tests to verify the new functionality works as expected and to ensure backward compatibility.
  • Ensured that pre-commit checks are passing.
  • Followed the commit message standard as per Tekton's guidelines.
  • Met all the Tekton contributor standards, including functionality, content, code quality, etc.
  • Added the appropriate kind label to categorize this PR correctly.

Release Notes

FEATURE: Tekton now supports gRPC-based tracing backends in addition to HTTP-based Jaeger tracing. This enhancement allows for more flexibility in integrating Tekton with various observability tools that use gRPC for telemetry data. Users leveraging gRPC-based trace collectors can now configure Tekton to export traces over gRPC by specifying the endpoint with the "grpc" scheme or using the default port "4317".

@tekton-robot tekton-robot added the release-note Denotes a PR that will be considered when it comes time to generate release notes. label Feb 27, 2024
Copy link

linux-foundation-easycla bot commented Feb 27, 2024

CLA Missing ID CLA Not Signed

@tekton-robot tekton-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Feb 27, 2024
@tekton-robot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
To complete the pull request process, please assign abayer after the PR has been reviewed.
You can assign the PR to them by writing /assign @abayer in a comment when ready.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@tekton-robot tekton-robot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Feb 27, 2024
@tekton-robot
Copy link
Collaborator

Hi @TianxiangShen. Thanks for your PR.

I'm waiting for a tektoncd member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@tekton-robot tekton-robot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Feb 27, 2024
@tekton-robot tekton-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Feb 27, 2024
@tekton-robot
Copy link
Collaborator

The following is the coverage report on the affected files.
Say /test pull-tekton-pipeline-go-coverage-df to re-run this coverage report

File Old Coverage New Coverage Delta
pkg/tracing/tracing.go 77.2% 77.3% 0.1

@afrittoli
Copy link
Member

@kmjayadeep FYI

@afrittoli
Copy link
Member

@TianxiangShen thank you for your PR!
To contribute to Tekton, either you or your organisation should sign the contributor license agreement (CLA - see the EasyCLA Check). Let me know if you have any questions about that.

@afrittoli
Copy link
Member

/kind feature

@tekton-robot tekton-robot added the kind/feature Categorizes issue or PR as related to a new feature. label Feb 28, 2024
@TianxiangShen
Copy link
Author

/test pull-tekton-pipeline-go-coverage-df

@tekton-robot
Copy link
Collaborator

@TianxiangShen: Cannot trigger testing until a trusted user reviews the PR and leaves an /ok-to-test message.

In response to this:

/test pull-tekton-pipeline-go-coverage-df

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@TianxiangShen
Copy link
Author

@afrittoli Thanks for the instruction. I've signed the CLA, not sure what the CLA checking still failed, please let me know if there's any thing I should do.

@tekton-robot
Copy link
Collaborator

The following is the coverage report on the affected files.
Say /test pull-tekton-pipeline-go-coverage-df to re-run this coverage report

File Old Coverage New Coverage Delta
pkg/tracing/tracing.go 77.2% 77.3% 0.1

@tekton-robot
Copy link
Collaborator

The following is the coverage report on the affected files.
Say /test pull-tekton-pipeline-go-coverage-df to re-run this coverage report

File Old Coverage New Coverage Delta
pkg/tracing/tracing.go 77.2% 77.3% 0.1

@kmjayadeep
Copy link
Contributor

Hi @TianxiangShen ,
Thank you for your contribution.
We are in the process of removing jaeger dependency in favor of generic http endpoint. This is required because jaeger was removed from oltp package in 1.20. This PR would be a great addition to the http provider.

The PR #7547 would likely get merged soon. You will have to move the logic from reinitialize to createTracerProvider where the similar logic for http is defined.

@tekton-robot
Copy link
Collaborator

@TianxiangShen: PR needs rebase.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@tekton-robot tekton-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 12, 2024
@nickmango
Copy link

/easycla

1 similar comment
@afrittoli
Copy link
Member

/easycla

@afrittoli
Copy link
Member

/ok-to-test

@tekton-robot tekton-robot added the ok-to-test Indicates a non-member PR verified by an org member that is safe to test. label Jul 23, 2024
@tekton-robot tekton-robot removed the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Jul 23, 2024
@tekton-robot
Copy link
Collaborator

@TianxiangShen: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
pull-tekton-pipeline-build-tests 73b28fa link true /test pull-tekton-pipeline-build-tests
pull-tekton-pipeline-go-coverage 73b28fa link false /test pull-tekton-pipeline-go-coverage
pull-tekton-pipeline-unit-tests 73b28fa link true /test pull-tekton-pipeline-unit-tests
pull-tekton-pipeline-integration-tests 73b28fa link true /test pull-tekton-pipeline-integration-tests
pull-tekton-pipeline-beta-integration-tests 73b28fa link true /test pull-tekton-pipeline-beta-integration-tests
pull-tekton-pipeline-alpha-integration-tests 73b28fa link true /test pull-tekton-pipeline-alpha-integration-tests

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants