Install cert-manager and OpenTelemetry Operator:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.3/cert-manager.yaml
kubectl apply -f https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml
Add Uptrace Helm repo:
helm repo add uptrace https://charts.uptrace.dev
helm repo update uptrace
Install Uptrace:
helm install -n uptrace --create-namespace my-uptrace uptrace/uptrace
View available pods and logs:
kubectl get pods -n uptrace
kubectl logs my-uptrace-0 -n uptrace
The Uptrace UI is served via the Ingress on http://uptrace.local:
kubectl get -n uptrace ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
my-uptrace nginx uptrace.local 192.168.49.2 80 73s
If you don't have a Kubernetes Cluster, create one with minikube.
To install Helm, see Helm Installation guide.
To add Uptrace Helm repository:
helm repo add uptrace https://charts.uptrace.dev
To install Uptrace chart in uptrace
namespace:
helm install -n uptrace --create-namespace my-uptrace uptrace/uptrace
To list Uptrace pods:
kubectl get pods -n uptrace
NAME READY STATUS RESTARTS AGE
clickhouse-my-uptrace-0 1/1 Running 0 59s
my-uptrace-0 1/1 Running 0 59s
my-uptrace-zookeeper-0 1/1 Running 0 59s
To view Uptrace logs:
kubectl logs my-uptrace-0 -n uptrace
To fetch information about latest charts from the Helm repositories:
helm repo update
To upgrade to the latest available version:
helm -n uptrace upgrade my-uptrace uptrace/uptrace
Uptrace creates an ingress rule for uptrace.local
domain.
First, enable ingress controller:
minikube addons enable ingress
Then, make sure the pods are running:
kubectl get pods -n ingress-nginx
Lastly, update /etc/hosts
using the minikube IP address and open
http://uptrace.local:
$(minikube ip) uptrace.local
Then open http://uptrace.local/.
You can change Uptrace config by creating override-values.yaml
and providing Uptrace config in
uptrace.config
YAML option.
For example, to use your own ClickHouse database, create override-values.yaml
with the following
content:
clickhouse:
enabled: false
uptrace:
config:
ch:
addr: clickhouse-host:9000
user: default
password:
database: uptrace
Then install Uptrace:
helm --namespace uptrace install my-uptrace uptrace/uptrace -f override-values.yaml
See values.yaml for all available configuration options.
Create clickhouse-values.yaml
:
shards: 1
auth:
username: default
password: test
Then launch a ClickHouse cluster:
helm install -n uptrace clickhouse oci://registry-1.docker.io/bitnamicharts/clickhouse -f clickhouse-values.yaml
Create uptrace-values.yaml
:
replicaCount: 3
uptrace:
config:
ch:
addr: clickhouse-headless:9000
user: default
password: test
database: default
ch_schema:
replicated: true
cluster: default
clickhouse:
enabled: false
Then launch Uptrace:
helm install -n uptrace uptrace uptrace/uptrace -f uptrace-values.yaml
To connect to the ClickHouse database:
kubectl port-forward --namespace uptrace service/clickhouse-headless 9000:9000 &
clickhouse-client
To deploy Uptrace on AWS EKS and provide external access using the AWS LB Controller annotations:
service:
type: LoadBalancer
port: 80
loadBalancerSourceRanges:
- '0.0.0.0/0'
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: 'external'
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: 'ip'
service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: 'preserve_client_ip.enabled=true'
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: 'http'
service.beta.kubernetes.io/aws-load-balancer-healthcheck-protocol: 'http'
service.beta.kubernetes.io/aws-load-balancer-healthcheck-port: '14318'
service.beta.kubernetes.io/aws-load-balancer-healthcheck-path: '/'
To uninstall Uptrace chart:
helm -n uptrace uninstall my-uptrace
To delete Uptrace namespace:
kubectl delete namespace uptrace