Graph

A página Graph oferece um gráfico em tempo real e customizável que mostra uma visão sintetizada de vários parâmetros de um mesh. Construído sobre o Kiali, o gráfico mostra a interação entre os serviços que compõem o mesh a partir de várias opções de visualização, compondo uma representação gráfica ajustada às necessidades de cada usuário.

graph
Tela "Graph"

Por meio do gráfico customizável, você vê rapidamente o que está acontecendo no seu cluster, em tempo real. Por exemplo, você pode visualizar por onde ocorre o ingresso de requisições externas ao mesh, quais versões dos serviços estão implantadas, qual protocolo corre entre os serviços (HTTP ou gRPC, por exemplo), bem como estatísticas úteis (como porcentagem de sucesso nas requisições, entre outras).

Você pode selecionar o cluster que deseja operar no campo Cluster:, localizado no canto superior direito da tela.
Para visualizar os gráficos, é necessário ter a permissão Read Graph ativada no Sensedia Access Control.
Para que o gráfico exiba informações corretamente, é necessário que os serviços repassem headers seguindo o parâmetro OpenTracing. Você pode ler mais sobre isso na página sobre a tela Tracing.

Campos de seleção

Os campos de seleção acima do gráfico controlam uma série de parâmetros de visualização.

filters
Filtros para selecionar tipos e opções de visualização diferentes
  • Mesh: campo para selecionar o mesh que será visualizado. É possível selecionar mais de um mesh ao mesmo tempo. O botão ALL, localizado à direita desse campo, permite selecionar todos os meshes disponíveis no cluster de uma só vez.

  • Graph type: campo para selecionar o tipo de gráfico. Leia sobre as opções existentes abaixo.

  • Lookback: tempo a ser considerado como base para a exibição das informações. Opções: último minuto, últimos 5, 10 ou 30 minutos, última hora, últimas 3 ou 6 horas. As informações sempre incluem o momento presente como tempo final de consideração. Ou seja, se um determinado mesh não estiver recebendo requisições no momento, não poderá ser gerado um gráfico para ele.

  • Refresh rate: taxa de atualização dos dados. Ou seja, intervalo de tempo em que as informações serão coletadas para atualizar o gráfico. Opções: a cada 10, 15 ou 30 segundos, a cada 1 minuto, a cada 5 ou 15 minutos. Além disso, é possível pausar a atualização do gráfico (opção: Pause).

    • Ao lado do campo Lookback existe um botão para atualizar as informações manualmente (25).

  • Node Display: opções a serem incluídas na visualização. Leia sobre as opções existentes abaixo.

  • Appendices: opções adicionais de visualização. Leia sobre as opções existentes abaixo.

  • Edge Label: campo para escolher um tipo de valor a ser especificado nas arestas que mostram interações entre serviços, como uma espécie de rótulo (label). Opções: nenhum label, requisições por segundo, porcentagem de requisições, tempo de resposta.

Vale a pena esclarecer o uso do vocábulo node (nó) na página Graph. Em outras páginas do Sensedia Mesh, node é usado como um conceito de clústeres, significando uma máquina virtual ou física que contém pods de contêineres. A página Graph, entretanto, utiliza o vocábulo como ele aparece em teoria dos grafos ou análise de redes, significando um item, uma entidade específica que pode ser representada graficamente. Assim, um nó pode mudar conforme a granularidade pretendida para um gráfico. No nosso caso, um nó pode ser um serviço, um workload ou uma aplicação.

Por sua vez, as linhas que mostram a comunicação entre nós são chamadas comumente de edges (em português, arestas).

Tipos de gráfico

Há quatro tipos de gráfico diferentes, oferecendo uma visualização distinta do tráfego em um mesh.

App Graph: mostra a visualização de workloads agregados por aplicação.

demo app graph
App Graph

Service Graph: mostra a visualização de tráfego para serviços.

demo service graph
Service Graph

Versioned App Graph: mostra a mesma visualização do App Graph, mas separa as diferentes versões de uma aplicação, com informação do tráfego recebido por cada versão.

demo versioned app graph
Versioned App Graph

Workload Graph: mostra visualização do tráfego entre workloads, sem delimitar visualmente os serviços e aplicações.

demo workload graph
Workload Graph

Opções de visualização: Node Display

No campo Node Display é possível escolher informações que serão visualizadas no gráfico a nível dos nós (nodes):

display options
  • Node Names: insere os nomes dos nós no gráfico.

  • Service Nodes: delimita os nós. As formas utilizadas têm significado: quadrados representam aplicações, triângulos representam serviços, círculos representam workloads, pentágonos representam serviços especificados manualmente como Service Entry (um objeto do Istio; leia mais sobre ele na documentação do Istio), e losangos significam nós desconhecidos (que podem se dever a uma fonte de fora do mesh — que não seja o istio-ingressgateway — ou a um nó que não tenha um sidecar devidamente instalado).

  • Traffic Animation: se selecionada, o tráfego, ou seja, as interações entre os serviços, terá animação (leia mais sobre isso abaixo).

  • Circuit Breakers: representação gráfica (ícone: icon circuit breaker) quando um serviço é configurado com um circuit breaker.

  • Virtual Services: representação gráfica (ícone: icon virtual services) quando um serviço é configurado com um virtual service.

Traffic Animation

Neste último caso, as requisições HTTP são exibidas com representação de sucesso: círculos verdes significam que as requisições são bem-sucedidas, enquanto losangos vermelhos significam que são requisição com status HTTP de erro.

Se todas as requisições feitas forem bem-sucedidas, as arestas de interação serão verdes. Arestas amarelas significam que algumas requisições (até 20% do total) estão com erro. Se mais de 20% das requisições forem malsucedidas, as arestas serão vermelhas.

Para conexões TCP, as arestas são mostradas em azul e círculos ao lado da aresta mostram o tráfego. A velocidade com que os círculos se movem ao longo da aresta reflete a velocidade do tráfego.

traffic animation

Opções de visualização: Appendices

Além das opções de visualização já descritas, o campo Appendices traz opções extras.

display appendices
  • Unused Nodes: o gráfico mostrará nós que nunca receberam tráfego.

  • Missing Sidecars: o gráfico mostrará que existe falta de um sidecar para algum serviço (identificado com o ícone icon missing sidecar).

  • Security: o gráfico conterá representação de configuração de mTLS para cada aresta. A opção vem desmarcada, pois ela aumenta o tempo necessário para o gráfico ser renderizado. Quando selecionada, entretanto, ela mostrará um símbolo de cadeado fechado ou aberto, seguindo este comportamento:

    • Se o mTLS for configurado globalmente, haverá um símbolo de cadeado fechado para o mesh e cadeados abertos para arestas em que exista qualquer porcentagem de requisições que não sejam do tipo mTLS.

    • Se o mTLS não for configurado globalmente, haverá um cadeado fechado nas arestas em que houver requisições do tipo mTLS (qualquer porcentagem de requisições maior que 0%).

  • Service Entry: o gráfico exibirá um nó para ServiceEntry configurado.

  • Istio: o gráfico exibirá componentes do Istio, como VirtualService, por exemplo.

  • Dead Nodes: quando selecionada, a opção remove do gráfico nós que não têm tráfego ou que estão com erro.

Depois de selecionados os campos que controlam o tipo de visualização e tempo a ser considerado para as informações exibidas, há ainda controles adicionais no menu à esquerda do gráfico:

graph menu

O ícone icon summary abre um resumo do gráfico:

summary

O ícone icon fullscreen exibe o gráfico em tela cheia. Os ícones icon zoom out, icon zoom in e icon zoom fit controlam o zoom. Os três ícones icon layout mudam o layout do gráfico:

layouts

Além desses layouts pré-configurados, o gráfico é interativo. É possível mexer na disposição dos elementos e focar em alguns deles (por meio de duplo clique):

interactive

Por fim, o ícone icon legend exibe a legenda sobre as formas e cores presentes no gráfico:

legend
Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]