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

# Configurando aplicativos

Bem-vindo ao nosso Guia de Configuração. Este guia ensinará como adicionar e modificar configurações para a sua integração com o AppSignal.

<Tip>
  Leia mais informações sobre a configuração da integração com o AppSignal no seu
  app em nossa [seção de configuração][config topic].
</Tip>

## Escolha uma opção de configuração

Este guia o guiará pelas etapas necessárias para configurar seu aplicativo da melhor maneira para atender às suas necessidades. Existem, é claro, várias opções de configuração para o seu aplicativo, mas como o método de implementação para todas as opções é idêntico, neste guia, vamos focar nas seguintes configurações:

Usaremos a opção `log_level` como exemplo para aplicativos [Ruby](/ruby/configuration/options#option-log_level), [Elixir](/elixir/configuration/options#option-log_level), [Node.js](/nodejs/3.x/configuration/options#option-loglevel) e [Python](/python/configuration/options#option-log_level).

Usaremos a opção `namespace` como exemplo para [aplicativos JavaScript de front-end](/front-end/configuration).

## Métodos de configuração

Existem várias maneiras de configurar sua integração com o AppSignal, e as integrações podem variar dependendo da linguagem do seu aplicativo, mas todas têm os seguintes métodos de configuração:

* [Configuração baseada em arquivo:](#file-based-configuration)
  <br />Um arquivo de configuração no qual a integração do AppSignal lê a configuração
  do AppSignal.
* [Configuração por variáveis de ambiente do sistema:][env]
  <br />
  As variáveis de ambiente são definidas no sistema host (servidor) no processo
  pai que inicia o seu aplicativo.
  <br /> **Observação**: Este método não está disponível para JavaScript de front-end.

## Configuração baseada em arquivo

A configuração baseada em arquivo é a maneira mais fácil de configurar a sua integração.

Algumas integrações criam um arquivo de configuração durante a instalação do AppSignal no app. Nesses arquivos de configuração, você pode configurar de forma única um ou vários ambientes de aplicativo.

<Tip>
  Certifique-se de usar o valor "Config file key" da tabela de opções de configuração
  como a chave de configuração. Esta chave é uma string em snake\_case (Ruby, Elixir, Python)
  ou camelCase (Node, JavaScript de front-end).
</Tip>

Opções de configuração para:

* [Ruby](/ruby/configuration/options)
* [Elixir](/elixir/configuration/options)
* [Node.js](/nodejs/3.x/configuration/options)
* [Python](/python/configuration/options)
* [JavaScript front-end](/front-end/configuration/)
* [Go](/go/configuration/options)

<Warning>
  Certifique-se de não fazer check-in de valores de configuração sensíveis, como a
  Push API key, em um sistema de controle de versão como o Git, a menos que estejam
  criptografados.
</Warning>

### Ruby

Ao usar a gem da integração Ruby, ela criará o `config/appsignal.yml` na pasta raiz do seu aplicativo, com configurações básicas após a instalação. Se o seu aplicativo reportar dados ao AppSignal sem um arquivo `appsignal.yml`, é mais provável que ele esteja usando [variáveis de ambiente do sistema][env].

<Tip>
  O arquivo `config/appsignal.yml` é um arquivo YAML (Yet Another Markup Language).
  e é interpretado como um template ERB (Embeded Ruby). Consulte a documentação
  [Ruby Configuration][ruby config] para mais detalhes sobre como funciona a configuração
  YAML.
</Tip>

No exemplo de arquivo de configuração abaixo, dois ambientes são definidos, `development` e `production` - cada um tem opções de configuração específicas do ambiente aninhadas neles. Tudo o que é definido e aninhado em `default` se aplica a todos os ambientes, desde que o default esteja incluído no mapeamento do ambiente.

Queremos definir o log\_level como debug exclusivamente no nosso ambiente `development`; para isso, adicionamos `log_level: "debug"` na configuração do ambiente development (linha 10).

<CodeGroup>
  ```yaml YAML theme={null}
  # Exemplo: config/appsignal.yml
  default: &defaults # Opções de configuração compartilhadas para todos os ambientes
    active: true
    name: "My awesome app"
    push_api_key: "<YOUR PUSH API KEY>"

  development: # Ambiente de desenvolvimento
    <<: *defaults
    log_level: "debug" # Isso habilita o modo debug apenas para o ambiente de desenvolvimento

  production: # Ambiente de produção
    <<: *defaults
  ```
</CodeGroup>

Lembre-se, tudo o que está aninhado em `default` é aplicado a todos os ambientes, então, para definir o log\_level como debug em todos os ambientes, podemos, em vez disso, aninhar a configuração em default, como feito na linha 6 do exemplo de código abaixo:

<CodeGroup>
  ```yaml YAML theme={null}
  # Exemplo: config/appsignal.yml
  default: &defaults
    active: true
    name: "My awesome app"
    push_api_key: "<YOUR PUSH API KEY>"
    log_level: "debug" # Isso habilita o modo debug para todos os ambientes
    # Outra configuração do AppSignal...

  development: # Ambiente de desenvolvimento
    <<: *defaults
    # Outra configuração do AppSignal...

  production: # Ambiente de produção
    <<: *defaults
    # Outra configuração do AppSignal...
  ```
</CodeGroup>

Ótimo, agora você aprendeu como configurar o AppSignal no seu aplicativo Ruby!

#### Leia mais:

* [Tópico de configuração da integração Ruby][ruby config]
* [Detalhes da ordem de carregamento da configuração da integração Ruby](/ruby/configuration/load-order)

### Elixir

Após a instalação, a integração Elixir cria um arquivo `config/appsignal.exs` (localização padrão) com configurações básicas. Se este arquivo não estiver presente, mas o seu aplicativo reportar dados ao AppSignal, verifique qualquer um dos outros arquivos `.exs` no diretório `config/` do seu app Elixir. Se nenhuma configuração do AppSignal estiver presente em nenhum dos arquivos, é provável que o seu aplicativo esteja usando [variáveis de ambiente do sistema][env] como método de configuração.

Para adicionar uma opção de configuração e fazer com que ela se aplique a todos os ambientes do seu aplicativo, adicione a opção de configuração ao arquivo `config/appsignal.exs`, como na linha 7 do exemplo abaixo:

<CodeGroup>
  ```elixir Elixir theme={null}
  # Exemplo: config/config.exs
  config :appsignal, :config,
    active: true,
    name: "My awesome app",
    push_api_key: "<YOUR PUSH API KEY>",
    env: Mix.env,
    log_level: "debug" # Isso define o log_level como debug para todos os ambientes
  ```
</CodeGroup>

Para aplicar a opção de configuração apenas a um único ambiente, adicione a configuração do AppSignal ao arquivo de configuração do ambiente, localizado no diretório `config/`.

No exemplo abaixo, a opção log\_level foi adicionada na linha 3 do ambiente de desenvolvimento (ou "dev"):

<CodeGroup>
  ```elixir Elixir theme={null}
  # Exemplo: config/dev.exs
  config :appsignal, :config,
    log_level: "debug" # Isso define o log_level como debug apenas para o ambiente "dev"
  ```
</CodeGroup>

Ótimo, agora você aprendeu como configurar o AppSignal no seu aplicativo Elixir!

#### Leia mais

* [Tópico de configuração da integração Elixir](/elixir/configuration/)
* [Detalhes da ordem de carregamento da configuração da integração Elixir](/elixir/configuration/load-order)

### Node.js

Após a instalação, você precisa criar um arquivo de configuração do AppSignal para configurar seu aplicativo. Se nenhum arquivo com a configuração do AppSignal estiver presente, é mais provável que ele esteja usando [variáveis de ambiente do sistema][env] como método de configuração.

Para configurar o AppSignal para apps Node.js, recomendamos criar um arquivo `appsignal.js` com a configuração do AppSignal no diretório raiz ou `src` do seu aplicativo. Em seguida, faça require/import dele a partir do código do app antes de qualquer outro pacote ser requisitado ou importado.

No exemplo abaixo, há um arquivo `appsignal.js` na raiz do diretório do app. Neste arquivo, adicionaremos a opção de configuração `logLevel`.

<CodeGroup>
  ```javascript Node.js theme={null}
  // appsignal.js
  const { Appsignal } = require("@appsignal/nodejs");

  const appsignal = new Appsignal({
    active: true,
    name: "<YOUR APPLICATION NAME>",
    pushApiKey: "<YOUR API KEY>",
    logLevel: "debug", // Define logLevel como debug para o ambiente Node.js
  });

  module.exports = { appsignal };
  ```
</CodeGroup>

A configuração no exemplo acima se aplica ao ambiente em que o Node.js está sendo executado (`NODE_ENV`, padrão "development").

No Node.js, existem muitas maneiras de criar configurações específicas de ambiente para o AppSignal. Se você não tiver certeza de como fazer isso dentro do seu próprio aplicativo, um método que recomendamos é usar condicionais no seu `appsignal.js`, como no exemplo abaixo, em que especificamos debug para o ambiente de produção.

1. Na linha 4 - só ativamos a integração do AppSignal se o ambiente for production.
2. Na linha 8 - como no exemplo de código anterior, definimos `logLevel` como `debug`.

<CodeGroup>
  ```javascript Node.js theme={null}
  // appsignal.js

  const appsignal = new Appsignal({
    active: process.env.NODE_ENV === "production"
    name: "<YOUR APPLICATION NAME>",
    pushApiKey: "<YOUR API KEY>",
    logLevel: "debug" // Define logLevel como debug para o ambiente Node.js
  });
  ```
</CodeGroup>

Quando a configuração estiver concluída, você precisa requerer `appsignal.js` no topo do arquivo principal do seu app. O nome do arquivo principal do seu aplicativo pode variar dependendo de como ele está estruturado. É o arquivo que você usa para iniciar seu aplicativo Node e geralmente se chama `index.js` ou `app.js`. Certifique-se de que o AppSignal seja requerido no topo do arquivo, como no exemplo abaixo:

<CodeGroup>
  ```javascript Node.js theme={null}
  // index.js
  // Coloque isto no topo
  const { appsignal } = require("./appsignal"); // Atualize para o local usado na etapa anterior

  // Coloque o código do seu app abaixo disto
  ```
</CodeGroup>

Ótimo, agora você aprendeu como configurar o AppSignal no seu aplicativo Node.js!

#### Leia mais

* [Configuração da integração Node.js][nodejs config]
* [Ordem de carregamento da configuração da integração Node.js](/nodejs/3.x/configuration/load-order)

### Python

Ao usar o instalador da integração Python, ele criará o `__appsignal__.py` na pasta raiz do seu aplicativo, com configurações básicas. Seu aplicativo também pode ser configurado usando [variáveis de ambiente do sistema][env].

Para adicionar uma opção de configuração e fazer com que ela se aplique ao ambiente de desenvolvimento do seu aplicativo, adicione a opção de configuração ao arquivo `__appsignal__.py`, como no exemplo abaixo.

<CodeGroup>
  ```python Python theme={null}
  # __appsignal__.py
  from appsignal import Appsignal

  appsignal = Appsignal(
      active=True,
      name="My awesome app",
      push_api_key="<YOUR PUSH API KEY>",
      environment="development",
      log_level="debug",
  )
  ```
</CodeGroup>

Para configurar o AppSignal para Python para outro ambiente, ou aplicar a configuração a todos os ambientes, configure a opção `environment` da mesma forma que seu app determina seu ambiente (development/staging/production). Isso pode ser feito usando uma variável de ambiente do sistema ou algum outro método específico do aplicativo. No exemplo abaixo, usaremos uma variável de ambiente do sistema `MY_APP_ENV` para definir o ambiente do app e ativar somente para o ambiente production.

<CodeGroup>
  ```python Python theme={null}
  # __appsignal__.py
  import os
  from appsignal import Appsignal

  app_env = os.environ.get("MY_APP_ENV")

  appsignal = Appsignal(
      active=app_env == "production",
      name="My awesome app",
      push_api_key="<YOUR PUSH API KEY>",
      environment=app_env,
  )
  ```
</CodeGroup>

Se quiser que algumas opções de configuração se apliquem apenas a determinados ambientes, crie condicionais que atendam às suas necessidades.

<CodeGroup>
  ```python Python theme={null}
  # __appsignal__.py
  import os
  from appsignal import Appsignal

  app_env = os.environ.get("MY_APP_ENV")

  options = {
      "active": app_env == "development",
      "name": "python/django4-celery",
      "environment": app_env,
  }
  if app_env == "development":
      options["log_level"] = "debug"

  appsignal = Appsignal(**options)
  ```
</CodeGroup>

Ótimo, agora você aprendeu como configurar o AppSignal no seu aplicativo Python!

#### Leia mais:

* [Tópico de configuração da integração Python][python config]
* [Detalhes da ordem de carregamento da configuração da integração Python](/python/configuration/load-order)

### JavaScript de front-end

Para configurar o AppSignal para JavaScript de front-end, recomendamos criar um arquivo `appsignal.js` com a configuração do AppSignal no diretório raiz ou `src` do seu projeto. Em seguida, faça require ou import dele a partir do código do app antes de qualquer outro pacote ser requisitado ou importado.

No exemplo abaixo, há um arquivo `appsignal.js` na raiz do diretório do aplicativo. Na linha 8, adicionamos a opção de configuração `namespace`.

<CodeGroup>
  ```javascript JavaScript theme={null}
  // appsignal.js
  import Appsignal from "@appsignal/javascript"; // Para Módulo ES
  const Appsignal = require("@appsignal/javascript").default; // Para módulo CommonJS

  const appsignal = new Appsignal({
    key: "<YOUR FRONTEND API KEY>",
    namespace: "frontend", // Configura o namespace do AppSignal para erros de front-end neste app
  });

  module.exports = { appsignal };
  ```
</CodeGroup>

Depois de concluir a configuração do seu aplicativo, você precisa requerer `appsignal.js` no topo do arquivo principal do seu aplicativo, como no exemplo abaixo:

<CodeGroup>
  ```javascript JavaScript theme={null}
  // index.js
  // Coloque isto no topo
  const { appsignal } = require("./appsignal"); // Atualize para o local usado na etapa anterior

  // Coloque o código do seu app abaixo disto
  ```
</CodeGroup>

E é isso - você está pronto! Siga estas etapas simples para todas as modificações futuras de opções de configuração.

#### Leia mais

* [Configuração da integração JavaScript de front-end](/front-end/configuration/)

## Configuração por variáveis de ambiente do sistema

<Warning>
  Este método de configuração não está disponível para JavaScript de front-end.
</Warning>

Variáveis de ambiente do sistema, ou "variáveis de ambiente" para abreviar, são variáveis acessíveis aos processos e herdadas do processo pai que os inicia. Em vez de usar um [arquivo de configuração][file] para configuração, é possível configurar o AppSignal usando apenas variáveis de ambiente. Também é possível armazenar chaves de configuração que contêm dados sensíveis, como a Push API key, em uma variável de ambiente e usar [arquivos de configuração][file] para o restante da configuração.

Este método de configuração é compatível com aplicativos Ruby, Elixir e Node.js.

Antes de passar para o exemplo a seguir de definir variáveis de ambiente por meio de um shell, vamos explicar como as variáveis de ambiente funcionam em relação a shells e processos.

As variáveis de ambiente podem pertencer a um processo, como um shell ou seu aplicativo. O comando `export FOO=BAR`, por exemplo, definiria a variável de ambiente `FOO` do seu shell como igual a `BAR`. As variáveis de ambiente são herdadas entre processos, portanto, quando esse shell inicia um novo processo, esse processo também terá qualquer uma das variáveis de ambiente do shell.

Quando você inicia um processo no shell (por exemplo, npm start), você também pode fornecer mais variáveis de ambiente apenas para aquele processo, atribuindo as variáveis assim: `FOO=BAR npm start`

Por conveniência, você pode querer configurar seu shell para definir certas variáveis de ambiente quando ele iniciar, para que quaisquer processos iniciados a partir desse shell herdem essas variáveis de ambiente. Se estiver usando o shell `bash`, os comandos no arquivo `.bash_profile` no seu diretório home são executados quando o shell é iniciado. Se estiver usando o `zsh`, que é o shell padrão no macOS, o arquivo `.zshenv` seria usado em vez disso para configurar variáveis de ambiente.

No arquivo de exemplo abaixo, exportamos as variáveis de ambiente que configuram a push API key e o nível de log do AppSignal, para que, quando um novo shell for iniciado, as variáveis de ambiente corretas sejam acessíveis ao seu aplicativo, permitindo que ele se comunique com o AppSignal.

As opções de configuração definidas por variáveis de ambiente se aplicam a todos os ambientes do aplicativo; no entanto, algumas opções de configuração são específicas da linguagem. Por exemplo, a opção de configuração `instrument_sequel` só existe na integração Ruby, porque Sequel é uma gem Ruby e, portanto, definir a variável de ambiente `APPSIGNAL_INSTRUMENT_SEQUEL` não tem efeito para outras integrações.

<CodeGroup>
  ```sh Shell theme={null}
  # Exemplo de shell Bash
  export APPSIGNAL_PUSH_API_KEY=<YOUR PUSH API KEY>
  export APPSIGNAL_LOG_LEVEL=debug # Define o log_level como debug para todos os ambientes.
  ```
</CodeGroup>

Existem vários locais possíveis para arquivos com configuração de variáveis de ambiente. Escolha a melhor opção que se adapta ao seu aplicativo e certifique-se de recarregar seu terminal shell após fazer alterações para garantir que ele tenha acesso às suas variáveis atualizadas.

* `~/.profile` ou `~/.bash_profile` - Configurações específicas do usuário. Use este local para configurar variáveis de ambiente por usuário.
* `/etc/profile` - Configurações de todo o sistema. Se vários usuários ou apps usarem a mesma máquina host, não use este local.

Provedores de hospedagem Platform As A Service (PaaS), como o Heroku, não fornecem um sistema para configurar diretamente variáveis de ambiente no shell. Você pode, em vez disso, usar a interface web ou CLI deles para configurar essas variáveis de ambiente.

<Note>
  Ao usar configuração baseada em variáveis de ambiente do sistema, certifique-se de usar
  o valor "System environment key" da tabela de opções de configuração como a chave
  de configuração. Esta chave está sempre em snake case maiúsculo\*, assim:
  `EXAMPLE_OF_A_CONFIG_KEY`

  <br />

  ***Curiosidade:** isso também é conhecido como SCREAMING\_SNAKE\_CASE 🐍*
</Note>

## Concluindo a configuração

Depois de alterar a configuração do AppSignal, seu aplicativo precisa ser reiniciado ou ter um deploy feito para que as alterações de configuração sejam detectadas pelo AppSignal.

As alterações de configuração não estão sendo detectadas? [Entre em contato][contact] e nós o ajudaremos! Para nos ajudar a depurar seu problema mais rapidamente, recomendamos enviar um [relatório de diagnóstico](/support/debugging#diagnose) do host do seu aplicativo.

## Leitura adicional

Leia mais sobre configuração em nossa documentação de [Application Configuration][config topic].

[config topic]: /application/configuration.html

[contact]: mailto:support@appsignal.com

[env]: #system-environment-variable-configuration

[file]: #file-based-configuration

[nodejs config]: /nodejs/3.x/configuration/

[ruby config]: /ruby/configuration/

[python config]: /python/configuration/
