> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Dashboards

Esta página fornece informações mais detalhadas sobre como algumas opções de gráficos de dashboard funcionam. Para todas as outras opções, por favor veja o ícone de ajuda com tooltip anexado para mais informações.

[Abra o construtor de dashboard e gráfico](https://appsignal.com/redirect-to/app?to=dashboard\&overlay=dashboardForm) em sua aplicação.

## Tipos de gráficos

Alguns dados são melhor compreendidos se o gráfico for renderizado de uma maneira diferente. Fornecemos as seguintes opções de exibição:

* Number chart
* Line graph
* Area graph
* Relative area graph

O número chart mostra o valor de uma métrica como um grande número. Isso é útil para métricas que representam um único valor, como contagem de erros ou contagem de requisições. O número pode representar o primeiro ou último valor, a média, a soma, o valor mínimo ou máximo durante o período de tempo selecionado.

<img src="https://mintcdn.com/appsignal-715f5a51/nF8c1Rwq1cS7b5hg/assets/images/screenshots/big-number-value-chart.png?fit=max&auto=format&n=nF8c1Rwq1cS7b5hg&q=85&s=e0154ecd303f043a66f54cf025e38506" alt="Exemplo de gráfico Big Number Value" width="2254" height="822" data-path="assets/images/screenshots/big-number-value-chart.png" />

Ao selecionar "Line graph", o tipo de gráfico padrão é "Line graph". Use "Area graph" para renderizar áreas abaixo das linhas e "Relative area graph" para renderizar um gráfico com os valores relativos de cada ponto de dados. Isso renderizará uma "porcentagem" de cada ponto de dado de 0-100 e preencherá o gráfico de acordo. Isso pode ser usado para mostrar facilmente a relação entre pontos de dados em um gráfico.

A imagem abaixo mostra a mesma métrica em todos os três tipos de gráfico. No Line e Area graph, você pode ver que a quantidade de dados aumentou, mas o Relative area graph na parte inferior mostra que a relação entre transmitido/recebido não mudou ao longo do tempo.

<img src="https://mintcdn.com/appsignal-715f5a51/nF8c1Rwq1cS7b5hg/assets/images/screenshots/custom_metrics_graph_display.png?fit=max&auto=format&n=nF8c1Rwq1cS7b5hg&q=85&s=a4ff4e1a677efdeace84292d21268278" alt="Exemplo de exibição de gráfico" width="854" height="788" data-path="assets/images/screenshots/custom_metrics_graph_display.png" />

## Valores NULL

Nem sempre todo ponto no tempo tem um valor para uma métrica, mas o valor não é `0`. Em nosso sistema, não registramos um valor para esse tempo e tratamos esse ponto como `NULL` em vez de `0`. Isso significa que nenhum valor está presente e pode ser interpretado de duas maneiras. Ou era realmente `0` ou mantém o valor do último ponto de dados conhecido no gráfico.

A opção "NULL values" ("Draw NULL as 0" por padrão) permite a configuração do comportamento de desenho para um gráfico. Se definido como "Draw NULL as 0", tratará o valor `NULL` como `0`. Se definido como "Repeat last known value", repetirá o último valor conhecido até um ponto posterior no tempo especificar um novo valor.

Veja a diferença no gráfico abaixo. Com "Draw NULL as 0", o gráfico faz uma queda acentuada para `0` toda vez que a aplicação parou de reportar dados. Com "Repeat last known value", o gráfico parece menos volátil em termos de linhas se movendo para cima e para baixo.

<img src="https://mintcdn.com/appsignal-715f5a51/nF8c1Rwq1cS7b5hg/assets/images/screenshots/draw_null_as_zero.png?fit=max&auto=format&n=nF8c1Rwq1cS7b5hg&q=85&s=05980225ab9c14c071b212646611b395" alt="Captura de tela de comparação de gráfico da opção Draw NULL as 0" width="960" height="399" data-path="assets/images/screenshots/draw_null_as_zero.png" />

A aplicação usada para gerar esses gráficos:

<CodeGroup>
  ```ruby Ruby theme={null}
  # app.rb
  # gem install "appsignal"
  require "appsignal"
  Appsignal.configure("development") do |config|
    config.active = true
    config.name = "My app"
    config.push_api_key = "00000000-0000-0000-0000-000000000000"
  end
  Appsignal.start

  [
    [5, 1],
    [7, 1],
    [3, 3],
    [5, 2],
    [2, 5],
    [10, 2],
    [8, 1],
    [4, 2]
  ].each do |(value, pause)|
    puts "set_gauge random_number #{value}"
    Appsignal.set_gauge("random_numbers", value)
    pause_in_minutes = pause * 60
    puts "Sleeping #{pause} minute(s)"
    sleep pause_in_minutes
  end

  Appsignal.stop
  ```
</CodeGroup>
