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

docs: Remove 3 telemetry examples #278

Merged
merged 4 commits into from
Dec 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ The summary of the documentation in the `examples` repository lists all availabl
| [Custom serverless runtime image](custom-serverless-runtime-image/README.md) | Build custom runtime image. | Python |
| [Kiali](kiali/README.md) | Deploy Kiali to Kyma. | Kiali, Istio, Prometheus |
| [Prometheus](prometheus/README.md) | Deploy a Prometheus stack to monitor custom metrics. | Prometheus, Grafana |
| [Loki](loki/README.md) | Deploy Loki to store Pod logs. | Loki, Grafana |

## Installation

Expand Down
180 changes: 1 addition & 179 deletions jaeger/README.md
Original file line number Diff line number Diff line change
@@ -1,181 +1,3 @@
# Install custom Jaeger in Kyma

## Overview

The following instructions outline how to use [`Jaeger`](https://github.com/jaegertracing/helm-charts/tree/main/charts/jaeger) as a tracing backend with Kyma's [TracePipeline](https://kyma-project.io/#/telemetry-manager/user/03-traces).

## Prerequisites

- Kyma version 2.10 or higher as the target deployment environment
- The [Telemetry module](https://kyma-project.io/#/telemetry-manager/user/README) is [installed](https://kyma-project.io/#/02-get-started/08-install-uninstall-upgrade-kyma-module?id=install-uninstall-and-upgrade-kyma-with-a-module)
- kubectl version 1.22.x or higher
- Helm 3.x

## Installation

### Preparation

1. Export your Namespace as a variable. Replace the `{namespace}` placeholder in the following command and run it:

```bash
export K8S_NAMESPACE="{namespace}"
```

1. Export the Helm release name that you want to use. The release name must be unique for the chosen Namespace. Be aware that all resources in the cluster will be prefixed with that name. Run the following command:
```bash
export HELM_JAEGER_RELEASE="jaeger"
```

1. Update your Helm installation with the required Helm repository:

```bash
helm repo add jaegertracing https://jaegertracing.github.io/helm-charts
helm repo update
```

### Install Jaeger

> **NOTE:** It is officially recommended to install Jaeger with the [Jaeger operator](https://github.com/jaegertracing/helm-charts/tree/main/charts/jaeger-operator). Because the operator requires a cert-manager to be installed, the following instructions use a plain Jaeger installation. However, the described installation is not meant to be used for production setups.

Run the Helm upgrade command, which installs the chart if not present yet.
```bash
helm upgrade --install --create-namespace -n $K8S_NAMESPACE $HELM_JAEGER_RELEASE jaegertracing/jaeger -f https://raw.githubusercontent.com/kyma-project/examples/main/jaeger/values.yaml
```

You can either use the [`values.yaml`](./values.yaml) provided in this `jaeger` folder, which contains customized settings deviating from the default settings, or create your own `values.yaml` file.

### Verify the installation

Check if the `jaeger` Pod was successfully created in the Namespace and is in the `Running` state:
```bash
kubectl -n $K8S_NAMESPACE rollout status deploy $HELM_JAEGER_RELEASE
```

### Activate a TracePipeline

To configure the Kyma trace collector with the deployed Jaeger instance as the backend. To create a new [TracePipeline](https://kyma-project.io/#/telemetry-manager/user/03-traces),
execute the following command:
```bash
cat <<EOF | kubectl -n $K8S_NAMESPACE apply -f -
apiVersion: telemetry.kyma-project.io/v1alpha1
kind: TracePipeline
metadata:
name: jaeger
spec:
output:
otlp:
protocol: http
endpoint:
value: http://$HELM_JAEGER_RELEASE-collector.$K8S_NAMESPACE.svc.cluster.local:4318
EOF
```

### Activate Istio Tracing

To [enable Istio](https://kyma-project.io/#/telemetry-manager/user/03-traces?id=step-2-enable-istio-tracing) to report span data, apply an Istio telemetry resource and set the sampling rate to 100%. This approach is not recommended for production.

```bash
cat <<EOF | kubectl apply -f -
apiVersion: telemetry.istio.io/v1alpha1
kind: Telemetry
metadata:
name: tracing-default
namespace: istio-system
spec:
tracing:
- providers:
- name: "kyma-traces"
randomSamplingPercentage: 100.00
EOF
```

### Access Jaeger

To access Jaeger using port forwarding, run:
```bash
kubectl -n $K8S_NAMESPACE port-forward svc/$HELM_JAEGER_RELEASE-query 16686
```

Open the Jaeger UI in your browser under `http://localhost:16686`.

### Deploy a workload and activate Kyma's TracePipeline feature

To see distributed traces visualized in Jaeger, follow the instructions in [`trace-demo`](./../trace-demo/).

## Advanced Topics

### Integrate with Grafana

Jaeger can be provided as a data source integrated into Grafana. For example, it can be part of a Grafana installation as described in the [Prometheus tutorial](./../prometheus/README.md). To have a Jaeger data source as part of the Grafana installation, deploy a Grafana data source in the following way:

```bash
cat <<EOF | kubectl -n $K8S_NAMESPACE apply -f -
apiVersion: v1
kind: ConfigMap
metadata:
name: jaeger-grafana-datasource
labels:
grafana_datasource: "1"
data:
jaeger-grafana-datasource.yaml: |-
apiVersion: 1
datasources:
- name: Jaeger-Tracing
type: jaeger
access: proxy
url: http://$HELM_JAEGER_RELEASE-query.$K8S_NAMESPACE:16686
editable: true
EOF
```
Restart the Grafana instance. Afterwards, the Jaeger data source will be available in the `Explore` view.

### Authentication

Jaeger does not provide authentication mechanisms by itself. To secure Jaeger, follow the instructions provided in the [Jaeger documentation
](https://www.jaegertracing.io/docs/latest/security/#browser-to-ui).

### Exposure
>**CAUTION**: The following approach exposes the Jaeger instance as it is without providing any ways of authentication.

To expose Jaeger using Kyma API Gateway, create the following APIRule:
```bash
cat <<EOF | kubectl -n $K8S_NAMESPACE apply -f -
apiVersion: gateway.kyma-project.io/v1beta1
kind: APIRule
metadata:
name: jaeger
spec:
host: jaeger-ui
service:
name: $HELM_JAEGER_RELEASE-query
port: 16686
gateway: kyma-system/kyma-gateway
rules:
- path: /.*
methods: ["GET", "POST"]
accessStrategies:
- handler: noop
mutators:
- handler: noop
EOF
```

Get the public URL of your Jaeger instance:
```bash
kubectl -n $K8S_NAMESPACE get vs -l apirule.gateway.kyma-project.io/v1beta1=jaeger.$K8S_NAMESPACE -ojsonpath='{.items[*].spec.hosts[*]}'
```

## Cleanup

When you're done, remove the example and all its resources from the cluster.

1. Remove the stack by calling Helm:

```bash
helm delete -n $K8S_NAMESPACE $HELM_JAEGER_RELEASE
```

2. If you created the `$K8S_NAMESPACE` Namespace specifically for this tutorial, remove the Namespace:
```bash
kubectl delete namespace $K8S_NAMESPACE
```
The document has been moved. Find the updated instructions in [Integrate With Jaeger](https://kyma-project.io/#/telemetry-manager/user/integration/jaeger/README).
19 changes: 0 additions & 19 deletions jaeger/values.yaml

This file was deleted.

Loading