> ## 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.

# Traces de aplicações Vercel

Ao implantar aplicações ou funções no Vercel, você pode enviar dados de telemetria ao AppSignal de duas maneiras:

1. [Usando o traces drain do Vercel](#using-the-traces-drain). Além de encaminhar os dados coletados pelo pacote de instrumentação OpenTelemetry do Vercel, isso também fornecerá visibilidade da infraestrutura do Vercel, como Vercel functions e edge network.
2. [Usando o pacote de instrumentação OpenTelemetry do Vercel](#using-the-instrumentation-package).

Certifique-se de [ter uma URL de hosted collector](/collector/hosted-vs-self-hosted#hosted-collector) antes de prosseguir com estas instruções.

## Usando o traces drain

Para encaminhar traces do Vercel ao AppSignal usando o traces drain, você precisa configurar um traces drain nas configurações do seu projeto Vercel. Também é recomendado instalar o [pacote de instrumentação OpenTelemetry do Vercel](https://vercel.com/docs/tracing/instrumentation) na sua aplicação para capturar dados de telemetria da sua aplicação.

Usar o traces drain do Vercel requer um plano do Vercel no qual os drains estejam disponíveis. Veja a [documentação dos drains do Vercel](https://vercel.com/docs/drains) para mais informações sobre os planos e preços disponíveis.

### Configure um traces drain

No dashboard do Vercel, navegue até seu projeto e vá para a seção **Settings > Drains**. Clique em **Add Drain** e selecione **Traces** como o tipo de drain.

<img src="https://mintcdn.com/appsignal-715f5a51/MS9b5WO71lSfD5jG/assets/images/screenshots/vercel/add-drain.png?fit=max&auto=format&n=MS9b5WO71lSfD5jG&q=85&s=510e2ac6f225ef838fe46f7bea3d0b47" alt="Captura de tela da etapa &#x22;Add Drain&#x22; na UI do Vercel" width="1560" height="988" data-path="assets/images/screenshots/vercel/add-drain.png" />

Quando for perguntado quais projetos devem enviar dados usando este drain, certifique-se de selecionar apenas este projeto.

<img src="https://mintcdn.com/appsignal-715f5a51/MS9b5WO71lSfD5jG/assets/images/screenshots/vercel/configure-drain.png?fit=max&auto=format&n=MS9b5WO71lSfD5jG&q=85&s=e76695b4242c308ac055060987cbff8d" alt="Captura de tela da etapa &#x22;Configure drain&#x22; na UI do Vercel" width="1526" height="698" data-path="assets/images/screenshots/vercel/configure-drain.png" />

Em **Configure the destination**, selecione o endpoint **Custom** e insira a URL do endpoint OTLP do seu collector AppSignal, adicionando `/v1/traces` no final:

<CodeGroup>
  ```plaintext title="Example URL" theme={null}
  https://your-appsignal-collector-host.com/v1/traces
  ```
</CodeGroup>

No dropdown **Encoding**, selecione **Protobuf**.

Habilite **Custom Headers** e adicione os seguintes headers para autenticar com o AppSignal, substituindo os valores de placeholder pelas informações da sua aplicação como mostradas no AppSignal.
Sua Push API key pode ser encontrada em [App settings](https://appsignal.com/redirect-to/app?to=info).

<CodeGroup>
  ```yaml Custom Headers theme={null}
  AppSignal-Config-Name: <your-app-name>
  AppSignal-Config-Environment: <your-app-environment>
  AppSignal-Config-PushApiKey: <your-appsignal-push-api-key>
  AppSignal-Config-Revision: vercel
  AppSignal-Config-LanguageIntegration: nodejs
  OpenTelemetry-HostName: vercel
  ```
</CodeGroup>

Pressionar **Test** enviará um trace de teste ao AppSignal e salvará o drain em caso de sucesso.

### Instale e configure o pacote de instrumentação

Use o npm para adicionar o pacote de instrumentação OpenTelemetry do Vercel e a OpenTelemetry API às dependências da sua aplicação:

<CodeGroup>
  ```shell Shell theme={null}
  npm install @opentelemetry/api @vercel/otel
  ```
</CodeGroup>

Se você estiver usando Next.js, adicione o arquivo `instrumentation.ts` à sua aplicação. Ele deve ser colocado no diretório raiz do projeto (ou dentro da pasta `src` se houver uma).

Se você estiver usando outros frameworks ou Vercel functions, certifique-se de que esse código seja carregado no início do processo de execução para capturar corretamente os dados do OpenTelemetry.

<CodeGroup>
  ```typescript TypeScript theme={null}
  import { registerOTel } from "@vercel/otel";

  export function register() {
    registerOTel({
      serviceName: "My service",
    });
  }
  ```
</CodeGroup>

Atualize o nome do serviço para um nome reconhecível para sua aplicação.

## Usando o pacote de instrumentação

Para enviar dados de telemetria ao AppSignal usando o [pacote de instrumentação OpenTelemetry do Vercel](https://vercel.com/docs/tracing/instrumentation), você precisa instalar e configurar o pacote na sua aplicação.

### Instale os pacotes do OpenTelemetry

Use o npm para adicionar o pacote de instrumentação OpenTelemetry do Vercel, o SDK do OpenTelemetry e o exportador OTLP às dependências da sua aplicação:

<CodeGroup>
  ```shell Shell theme={null}
  npm install @opentelemetry/api \
    @opentelemetry/sdk-metrics \
    @opentelemetry/exporter-trace-otlp-proto \
    @opentelemetry/exporter-metrics-otlp-proto \
    @vercel/otel
  ```
</CodeGroup>

### Configure o OpenTelemetry na sua aplicação

Se você estiver usando Next.js, adicione o arquivo `instrumentation.ts` à sua aplicação. Ele deve ser colocado no diretório raiz do projeto (ou dentro da pasta `src` se houver uma).

Se você estiver usando outros frameworks ou Vercel functions, certifique-se de que esse código seja carregado no início do processo de execução para capturar corretamente os dados do OpenTelemetry.

<CodeGroup>
  ```typescript TypeScript theme={null}
  import { registerOTel } from "@vercel/otel";
  import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto";
  import { OTLPMetricExporter } from "@opentelemetry/exporter-metrics-otlp-proto";
  import { PeriodicExportingMetricReader } from "@opentelemetry/sdk-metrics";

  const collectorHost = "https://your-appsignal-collector-host.com";

  export function register() {
    registerOTel({
      serviceName: "My service",
      traceExporter: new OTLPTraceExporter({
        url: `${collectorHost}/v1/traces`,
      }),
      metricReader: new PeriodicExportingMetricReader({
        exportIntervalMillis: 1000,
        exporter: new OTLPMetricExporter({
          url: `${collectorHost}/v1/metrics`,
        }),
      }),
      attributes: {
        "appsignal.config.name": "My app",
        "appsignal.config.environment": "production",
        "appsignal.config.revision": "1",
        "appsignal.config.language_integration": "nodejs",
        "appsignal.config.push_api_key": "0000-0000-0000-0000",
        "host.name": "vercel",
      },
    });
  }
  ```
</CodeGroup>

## Teste a integração

Depois de concluir uma das opções de integração acima, implante sua aplicação no Vercel (ou execute um deploy de preview) e teste se você vê os dados chegando no AppSignal. Verifique especificamente as páginas ["Errors > Issue list"](https://appsignal.com/redirect-to/app?to=exceptions) e ["Performance > Traces"](https://appsignal.com/redirect-to/app?to=performance/traces).

Se depois de seguir nossas instruções de instalação você ainda não estiver vendo dados no AppSignal, [avise-nos](mailto:support@appsignal.com?subject=OpenTelemetry%20issue) e ajudaremos você a finalizar sua instalação do OpenTelemetry!
