{"id":26256538,"url":"https://github.com/netcracker/qubership-diag-proxy","last_synced_at":"2025-06-14T12:06:55.787Z","repository":{"id":273049983,"uuid":"895014244","full_name":"Netcracker/qubership-diag-proxy","owner":"Netcracker","description":"Tiny TCP proxy (based on Nginx) to proxy traces and diagnostic information","archived":false,"fork":false,"pushed_at":"2025-05-20T15:41:20.000Z","size":54,"stargazers_count":0,"open_issues_count":3,"forks_count":3,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-06-10T03:49:03.103Z","etag":null,"topics":["observability","proxy","qubership-observability"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Netcracker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-11-27T12:06:17.000Z","updated_at":"2025-05-20T15:41:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"2340b750-1d10-4580-9bd5-7b8275bc4f5f","html_url":"https://github.com/Netcracker/qubership-diag-proxy","commit_stats":null,"previous_names":["netcracker/qubership-diag-proxy"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Netcracker/qubership-diag-proxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-diag-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-diag-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-diag-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-diag-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Netcracker","download_url":"https://codeload.github.com/Netcracker/qubership-diag-proxy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-diag-proxy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259813011,"owners_count":22915199,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["observability","proxy","qubership-observability"],"created_at":"2025-03-13T20:18:25.716Z","updated_at":"2025-06-14T12:06:55.759Z","avatar_url":"https://github.com/Netcracker.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Diag proxy\n\n* [Diag proxy](#diag-proxy)\n  * [Overview](#overview)\n  * [Before you begin](#before-you-begin)\n  * [Deploy in application namespace](#deploy-in-application-namespace)\n  * [Deploy](#deploy)\n    * [Deploy parameters](#deploy-parameters)\n    * [Parameter order and override](#parameter-order-and-override)\n  * [Examples](#examples)\n\n## Overview\n\nIt is a simple and tiny proxy fully based on [Nginx](https://nginx.org/) which allows:\n\n* Receiving diagnostics information from Profiler agent and send it to Profiler collector\n  in another namespace.\n* Receiving tracing information from OTEL/Jaeger/Zipkin agents and send it to OTEL/Jaeger/Zipkin collector\n  in another namespace.\n\nThe main purpose of `diag-proxy` is to simplify settings in components.\n\nBy using `diag-proxy`, we can configure addresses for profiler agent and tracing agent.\nAnd specify addresses of Profiler and OTEL/Jaeger/Zipkin collectors in one place.\n\n## Before you begin\n\n* You need namespace in Kubernetes 1.15+ in which CDT will be installed\n* Diag proxy strongly recommended installing it in the application's namespace before deploying application\n\n## Deploy in application namespace\n\nIf you want to use diag-proxy to proxy diagnostic data in the application's namespace you must deploy\nthe agent before deploying the application in this namespace.\n\nYou can override this value if you want to send diagnostic data directly to the collector service without using diag-proxy.\n\n## Deploy\n\n### Deploy parameters\n\n\u003c!-- markdownlint-disable line-length --\u003e\n| Name                          | Default value                               | Description                                                                                                                                                                               |\n| ----------------------------- | ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `ESC_COLLECTOR_NS`            | `cdt`                                       | Namespace where Execution Statistics Collector is installed. If neither `ESC_COLLECTOR_NS` nor (`ESC_COLLECTOR_HOST` and `ESC_STATIC_HOST`) are specified, the ESC proxy will be disabled |\n| `ESC_COLLECTOR_HOST`          | `esc-collector-service.${ESC_COLLECTOR_NS}` | Collector service of Execution Statistics Collector                                                                                                                                       |\n| `ESC_COLLECTOR_PORT`          | `1715`                                      | ESC port which ESC agent use to send collected calls to ESC in special protocol (over TCP)                                                                                                |\n| `ESC_STATIC_HOST`             | `esc-static-service.${ESC_COLLECTOR_NS}`    | Static Nginx service of Execution Statistics Collector                                                                                                                                    |\n| `ESC_STATIC_PORT`             | `8080`                                      | ESC port which can be use to request new versions of ESC agent and send collected Heap, Thread dumps or top and GC logs (over HTTP)                                                       |\n| `ZIPKIN_COLLECTOR_HOST`       | `-`                                         | Host (without port) where Zipkin is installed. Standard `9411` is proxy                                                                                                                   |\n| `ZIPKIN_COLLECTOR_PORT`       | `9411`                                      | Zipkin (or Jaeger) port to receive traces in Zipkin format                                                                                                                                |\n| `JAEGER_NS`                   | `jaeger`                                    | Namespace where Jaeger is installed. If neither `JAEGER_NS` nor `JAEGER_COLLECTOR_HOST` are specified, the Tracing proxy will be disabled                                                 |\n| `JAEGER_COLLECTOR_HOST`       | `jaeger-collector.${JAEGER_NS}`             | Host (without port) where Jaeger is installed. Standard ports `14250` (grpc), `14267` (thrift for jaeger agent), `14268` (thrift for external clients) are proxy.                         |\n| `JAEGER_GRPC_PORT`            | `14250`                                     | Jaeger port to receive gRPC traffic and traces (over TCP)                                                                                                                                 |\n| `JAEGER_AGENT_PORT`           | `14267`                                     | Jaeger port to receive traces in thrift format from jaeger-agent (over TCP)                                                                                                               |\n| `JAEGER_THRIFT_PORT`          | `14268`                                     | Jaeger port to receive traces in thrift format from any external clients (over HTTP)                                                                                                      |\n| `JAEGER_OTEL_GRPC_PORT`       | `4317`                                      | Jaeger port to receive traces in OpenTelemetry format from any external clients (over gRPC)                                                                                               |\n| `JAEGER_OTEL_HTTP_PORT`       | `4318`                                      | Jaeger port to receive traces in OpenTelemetry format from any external clients (over HTTP)                                                                                               |\n| `SKIP_HOSTNAME_RESOLVING`     | `false`                                     | Disable host resolving during run and allow to run agent with pre-configured hosts without checking them                                                                                  |\n| `NUMBER_OF_PODS`              | `1`                                         | Number of diag-proxy replicas (pods per deployment)                                                                                                                              |\n| `CPU_LIMIT`                   | `500m`                                      | Allow to set CPU limits for pod                                                                                                                                                           |\n| `CPU_REQUEST`                 | `100m`                                      | Allow to set CPU request for pod                                                                                                                                                          |\n| `MEMORY_LIMIT`                | `500Mi`                                     | Allow to set Memory limits for pod                                                                                                                                                        |\n| `MEMORY_REQUEST`              | `20Mi`                                      | Allow to set Memory request for pod                                                                                                                                                       |\n| `ARTIFACT_DESCRIPTOR_VERSION` | `-`                                         | Sets value for `app.kubernetes.io/version` label                                                                                                                                          |\n| `IMAGE_REPOSITORY`            | `-`                                         | A docker image to use for diag-proxy deployment                                                                                                                                  |\n| `PRIORITY_CLASS_NAME`         | `-`                                         | Assigned to the Pods to prevent them from evicting                                                                                                                                        |\n| `tlsConfig`                   | `-`                                         | TLS configuration for upstream application cloud profiler  i.e. collector-service and static service                                                                                      |\n| `tlsConfig.enabled`           | `false`                                     | Enable or Disable TLS for upstream application cloud profiler  i.e. collector-service and static service                                                                                  |\n| `tlsConfig.caCert`            | `-`                                         | CA certificate for maintaining trust between diag-proxy and TLS enabled the upstream application(Currently collector and static-service)                                         |\n| `tlsConfig.tlsCert`           | `-`                                         | TLS certificate needed for encrypted traffic between diag-proxy and TLS enabled the upstream application(Currently collector and static-service)                                 |\n| `tlsConfig.tlsKey`            | `-`                                         | TLS Key needed for encrypted traffic between diag-proxy and TLS enabled the upstream application(Currently collector and static-service)                                         |\n\u003c!-- markdownlint-enable line-length --\u003e\n\n### Parameter order and override\n\nTo deploy `diag-proxy` there are two sets of parameters to configure it which have relations:\n\n* to specify the namespace name for Tracing or Profiler (that has the suffix `_NS`)\n* to specify the hostname for Tracing or Profiler (that has the suffix `_HOST`)\n\nYou can specify only `*_NS` parameters, like:\n\n```yaml\nESC_COLLECTOR_NS: profiler\nJAEGER_NS: tracing\n```\n\nThe hostname will be automatically calculated using the default Kubernetes Service name and namespace name.\n\nBut if you change the Kubernetes Service name of one or N components you can override hosts values\n(that generated using namespace names) using `*_HOST` parameters, for example:\n\n```yaml\nESC_COLLECTOR_NS: profiler\nESC_COLLECTOR_HOST: esc-collector-service-new.profiler-new.svc  # this value will use even if ESC_COLLECTOR_NS specified\n\nJAEGER_NS: tracing\nJAEGER_COLLECTOR_HOST: jaeger-collector-new.tracing-new.svc  # this value will use even if JAEGER_NS specified\n```\n\n## Examples\n\nYou can find examples in the document [Examples](/docs/examples.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetcracker%2Fqubership-diag-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetcracker%2Fqubership-diag-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetcracker%2Fqubership-diag-proxy/lists"}