# Como fazer o debug de functions no Data Stream

import Apiv4Rollout from '~/includes/snippets/apiv4Rollout/pt/snippet.mdx'
import Tabs from '~/components/tabs/Tabs'

<Apiv4Rollout />


Verificar o código para fazer debug de functions através do [Data Stream](/pt-br/documentacao/produtos/observe/data-stream/) é importante para identificar se os erros continuam ocorrendo ou se o processo de debugging foi bem sucedido.

Antes de analisar o processo, você deve aplicar o código de debugging. Descubra mais em [Debugging functions](/pt-br/documentacao/devtools/debugging/).

Existem instruções separadas usando configurações de [Domains legados](/pt-br/documentacao/produtos/build/applications/domains/) e usando o novo produto [Workloads](/pt-br/documentacao/produtos/secure/workloads).

:::tip
Se você não tem certeza de quais etapas se aplicam à sua conta, consulte [o guia Verificar Migração da Conta](/pt-br/documentacao/produtos/guias/verificar-migracao-conta/) para determinar se sua conta já foi migrada.
:::


## Configure o Data Stream para fazer debug de functions

Após aplicar o código de debugging para functions:

1. [Acesse o Azion Console](https://console.azion.com).
2. No canto superior esquerdo, selecione **Data Stream** na seção **OBSERVE**.
3. Clique em **Add Streaming**.
4. Escolha um nome fácil de lembrar para o seu stream.
5. Na lista suspensa **Data Source**, selecione **Functions**.
6. Na lista suspensa **Template**, selecione **Custom Template**.
7. Na caixa de código **Data Set**, adicione as variáveis a seguir:

```json
{
	"time": "$time",
    "global_id": "$global_id",
    "edge_function_id": "$edge_function_id",
    "request_id": "$request_id",
    "log_level": "$log_level",
    "log_message": "$log_message"
}
```

<Tabs client:visible>
    <Fragment slot="tab.consoleworkloads">Console - Workloads</Fragment>
    <Fragment slot="tab.consoledomains">Console - Domains</Fragment>

<Fragment slot="panel.consoleworkloads">

1. Em **Workloads** > **Options**, selecione **All Current and Future Workloads** ou **Filter Workloads**. Veja mais sobre cada opção em [Como associar workloads no Data Stream](/pt-br/documentacao/produtos/guias/data-stream-associar-workloads/).
2. Na seção **Destination**, selecione um **Connector** na lista suspensa. Veja mais sobre [configurar um endpoint](/pt-br/documentacao/produtos/observe/data-stream/#endpoints).
    - Os campos para preenchimento são diferentes dependendo do tipo de conector que você escolher.


Por fim, para finalizar a configuração do seu stream:

10. Confira se a opção **Active** está ligada, indicada pelo switch com cor laranja.
11. Clique no botão **Save**.

Agora, você consegue analisar o comportamento do processo de debugging de functions através dos logs enviados para o seu stream configurado.

## Descrição das variáveis

| Variável          | Descrição                                                   |
| ----------------- | ----------------------------------------------------------- |
| $time             | Data e hora da requisição. Exemplo: Oct. 31st, 2022 - 19:30:41                               |
| $global_id        | Identificador da configuração.                                        |
| $edge_function_id | Identificador da Function.                                   |
| $request_id       | Identificador único da requisição. Exemplo: 5f222ae5938482c32a822dbf15e19f0f                                         |
| $log_level        | Nível do log gerado: ERROR, WARN, INFO, DEBUG, ou TRACE. |
| $log_message      | Mensagem editável usada para o log na chamada da função. Disponível para usuários identificarem e reportarem acontecimentos.     |

</Fragment>

<Fragment slot="panel.consoledomains">

8. Em **Options**, selecione **Filter Domains** ou **All Domains**. Veja mais sobre cada opção em [Como associar domínios no Data Stream](/pt-br/documentacao/produtos/guias/data-stream-associar-dominios/).
9.  Na seção **Destination**, selecione um **Endpoint Type** na lista suspensa. Veja mais sobre [configurar um endpoint](/pt-br/documentacao/produtos/observe/data-stream/#endpoints).
    - Os campos para preenchimento são diferentes dependendo do tipo de endpoint que você escolher.


Por fim, para finalizar a configuração do seu stream:

10. Confira se a opção **Active** está ligada, indicada pelo switch com cor laranja.
11. Clique no botão **Save**.

Agora, você consegue analisar o comportamento do processo de debugging de functions através dos logs enviados para o seu stream configurado.

## Descrição das variáveis

| Variável          | Descrição                                                   |
| ----------------- | ----------------------------------------------------------- |
| $time             | Data e hora da requisição. Exemplo: Oct. 31st, 2022 - 19:30:41                               |
| $global_id        | Identificador da configuração.                                        |
| $edge_function_id | Identificador da Function.                                   |
| $request_id       | Identificador único da requisição. Exemplo: 5f222ae5938482c32a822dbf15e19f0f                                         |
| $log_level        | Nível do log gerado: ERROR, WARN, INFO, DEBUG, ou TRACE. |
| $log_message      | Mensagem editável usada para o log na chamada da função. Disponível para usuários identificarem e reportarem acontecimentos.     |

</Fragment>
</Tabs>



---