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

[jaeger-v2] Jaeger v1 vs. v2 Benchmarking #5768

Open
jkowall opened this issue Jul 19, 2024 · 2 comments
Open

[jaeger-v2] Jaeger v1 vs. v2 Benchmarking #5768

jkowall opened this issue Jul 19, 2024 · 2 comments

Comments

@jkowall
Copy link
Contributor

jkowall commented Jul 19, 2024

Background

Jaeger is an open-source, end-to-end distributed tracing system that helps monitor and troubleshoot transactions in complex, microservices-based environments. Jaeger v2 is a major new version where we rebase all Jaeger backend components (agent, collector, ingester, and query) on top of the OpenTelemetry Collector, bringing significant improvements and changes to the platform.

The transition from v1 to v2 introduces significant architectural changes, particularly in the collector component. As part of this transition, it's crucial to understand the performance implications of these changes through comprehensive benchmarking.

Relevant links:

Project Objective

The goal of this project is to develop a comprehensive benchmarking suite that compares the performance of Jaeger v1 and v2, with a primary focus on the collector component. This benchmarking will provide valuable insights into the efficiency, scalability, and resource utilization of both versions, helping the community understand the benefits and potential trade-offs of migrating to Jaeger v2. The CNCF will provide compute resources on this project if needed. Please coordinate with the mentors.

Key Features and Implementation

  1. Benchmarking Environment Setup

    • Develop a reproducible environment for running benchmarks, using tools like Docker.
    • Ensure consistent hardware and software configurations for fair comparisons.
    • Create scripts to automate the deployment of Jaeger v1 and v2 components in isolation.
    • Support multiple backends for benchmarking (ElasticSearch, OpenSearch, Cassandra)
  2. Workload Generation

    • Utilize cmd/tracegen as a workload generator that can simulate various real-world scenarios.
    • Develop mechanisms to control the rate and volume of span ingestion.
  3. Performance Metrics Collection

    • Implement collection of key performance indicators, including:
      • Throughput (spans processed per second)
      • Latency (processing time per span)
      • Resource utilization (CPU, memory, network, disk I/O)
      • Dropped span rate under high load
    • Utilize Prometheus for metrics collection and storage.
    • Utilize Grafana for reporting and dashboarding of the data
  4. Storage Backend Integration

    • Evaluate collector performance with different storage backends (Elasticsearch, Cassandra, OpenSearch).
    • Measure the impact of different storage configurations on collector performance.
  5. Data Processing and Analysis

    • Generate comprehensive dashboards and reports comparing v1 and v2 performance across different scenarios.
  6. Documentation and Reproducibility

    • Prepare a blog post summarizing the results
    • Create detailed documentation of the benchmarking methodology, environment setup, and test scenarios.
    • Develop a guide for running the benchmarks, allowing community members to reproduce and verify results.

Expected Outcome

By the end of this project, we aim to have:

  • A comprehensive, automated benchmarking suite for comparing Jaeger v1 and v2 collectors.
  • Detailed performance report highlighting the strengths and potential areas of improvement in Jaeger v2.
  • Clear insights into the scalability and efficiency gains (or trade-offs) in Jaeger v2.
  • A set of recommendations for users considering migration from v1 to v2, based on performance characteristics.

Proposal

No response

Open questions

No response

@yurishkuro
Copy link
Member

yurishkuro commented Jul 19, 2024

Previous ticket #4869

Previous PR #5214

@yurishkuro
Copy link
Member

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants