Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cloudnativern/o11y-workshop
Repositório dos artefatos utilizados para o11y-workshop
https://github.com/cloudnativern/o11y-workshop
o11y observability opentelemetry
Last synced: about 1 month ago
JSON representation
Repositório dos artefatos utilizados para o11y-workshop
- Host: GitHub
- URL: https://github.com/cloudnativern/o11y-workshop
- Owner: cloudnativern
- Created: 2024-09-17T00:39:58.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-10-17T20:40:34.000Z (3 months ago)
- Last Synced: 2024-10-20T07:11:06.499Z (3 months ago)
- Topics: o11y, observability, opentelemetry
- Language: Makefile
- Homepage:
- Size: 8.79 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Workshop de Observabilidade
> Tempo estimado: 2 horas
## Requisitos
Para melhor aproveitamento desse workshop, é esperado que você tenha conhecimento prévio em:
* Kubernetes
* Docker
* Conceitos teóricos de ObservabilidadeFerramentas necessárias para executar a demo:
* Docker
* kind, kubectl e helm são opcionais, podem ser instalados via `Make`## Componentes
Essa demonstração é usada oficialmente pelo projeto OpenTelemetry, com apenas algumas modificações.
Abaixo os componentes que fazem parte:* [Serviços e Dependências (da aplicação)](https://opentelemetry.io/docs/demo/services/)
* [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/)
* [Jaeger UI](https://www.jaegertracing.io/)
* [Locust](https://locust.io/)
* [Grafana](https://grafana.com/oss/grafana/)
* [Prometheus](https://prometheus.io/)
* [OpenSearch](https://opensearch.org/)## Como Funciona
TL;DR: os sinais emitidos (logs, métricas e traces) pelos componentes da aplicação são coletados e processados pelo OTel Collector e enviados para os backends:
* Prometheus para métricas
* Jaeger para traces
* Opensearch para logsE todos esses backends estão configurados para visualização no Grafana.
Sobre a instalação, usamos um cluster Kubernetes local (com kind) e instalamos a demonstração por meio de um helm chart.
Diagrama de arquitetura completa: https://opentelemetry.io/docs/demo/architecture/
## Instalação/Configuração
Antes de tudo, faça o clone do repositório:
```bash
git clone [email protected]:cloudnativern/o11y-workshop.git
```**A partir daqui, todos os comandos devem ser executados a partir do repositório, dentro do diretório `demo/`.**
#### 1. Instale as dependências:
> Se você já tiver as dependências instaladas (kind, helm e kubectl), pode pular essa etapa```bash
make setup-deps
```#### 2. Após isso, crie o cluster k8s local:
```bash
make setup-cluster
```#### 3. Após o cluster estar executando, faça a instalação da aplicação demo:
```bash
make setup-demo
```A aplicação vai levar em torno de 8-10 minutos para estar pronta, para checar se todos os *Pods* estão executando corretamente:
```bash
kubectl get po -n otel-demo
```#### 4. Após estar executando corretamente, exponha o proxy que vai permitir que seja feito o acesso aos componentes da demonstração (na porta `8080`):
```bash
make expose-demo
```Sendo:
* `http://localhost:8080/`: Página inicial da aplicação
* `http://localhost:8080/grafana/`: Grafana
* `http://localhost:8080/loadgen/`: Locust UI
* `http://localhost:8080/jaeger/ui/`: Jaeger UISe quiser/precisar fazer alguma alterações nas configurações da demo (`demo/values.yaml`), execute o comando abaixo para atualizar:
```bash
make upgrade-demo
```## Cleanup
Ao final, do workshop, executar o comando abaixo para remover todos os recursos:
```bash
make cleanup
```## Referências e outras sugestões
* https://opentelemetry.io/docs/demo/
* https://dosedetelemetria.com/
* Outras recomendações de ferramentas opensource para Observabilidade:
* Grafana Tempo: backend para traces
* Grafana Mimir: backend para métricas
* Grafana Loki: backend para logs