Naar hoofdinhoud gaan
AppSignal Elixir kan op een paar verschillende manieren worden geconfigureerd: via Mix-configuratie of via omgevingsvariabelen. De configuratie wordt in vier stappen geladen. Beginnend met de pakketstandaarden en eindigend met het lezen van omgevingsvariabelen. De configuratieopties kunnen worden gemengd zonder dat er configuratie van een andere optie verloren gaat. Het gebruik van een initializer, een configuratiebestand en omgevingsvariabelen samen werkt prima.

Laadvolgorde

1. Pakketstandaarden

Het AppSignal-pakket begint met het laden van zijn standaardconfiguratie, het instellen van paden en het inschakelen van bepaalde functies. De standaardwaarden van de agent zijn te vinden in de documentatie over configuratieopties. Deze bron wordt vermeld als default in de uitvoer van diagnose.

2. Door systeem gedetecteerde instellingen

Het pakket detecteert op wat voor systeem het draait en configureert zichzelf dienovereenkomstig. Bijvoorbeeld, wanneer het op Heroku draait, stelt het de configuratieoptie :running_in_container in op true en :log op "stdout". Deze bron wordt vermeld als system in de uitvoer van diagnose.

3. Mix-configuratie

Het AppSignal-pakket wordt het meest gebruikelijk geconfigureerd via de configuratie in het Mix-configuratiebestand.
# config/config.exs
# or config/prod.exs
config :appsignal, :config,
  otp_app: :appsignal_phoenix_example,
  name: "AppsignalPhoenixExample",
  push_api_key: "your-push-api-key",
  env: Mix.env,
  active: true
Deze stap overschrijft alle opgegeven opties uit de standaarden of door het systeem gedetecteerde configuratie. Deze bron wordt vermeld als file in de uitvoer van diagnose.

4. Omgevingsvariabelen

Onze integratie zoekt naar zijn configuratie in omgevingsvariabelen. Wanneer deze worden gevonden, overschrijven ze alle opgegeven configuratieopties uit eerdere stappen.
export APPSIGNAL_APP_NAME="AppsignalPhoenixExample"
# start your app here
Deze bron wordt vermeld als env in de uitvoer van diagnose.

5. Overrides

Wanneer alle configuratie bekend is, voert onze integratie een laatste controle uit om te zien of de configuratie zichzelf niet tegenspreekt of dat sommige standaardconfiguratieopties niet zijn ingesteld. De “override”-configuratiebron bevat de laatste configuratiewijzigingen die door de integratie zijn aangebracht. Wanneer de waarde van een configuratieoptie wordt overschreven, is deze waarde leidend. Bijvoorbeeld: op een gegeven moment hebben we de optie skip_session_data afgeschaft ten gunste van de optie send_session_data. Wanneer de configuratieoptie skip_session_data door de app was geconfigureerd, maar send_session_data niet, gebruikte de integratie de waarde van skip_session_data om de waarde van de configuratieoptie send_session_data in te stellen.