Kies een configuratieoptie
Deze gids leidt u door de stappen die nodig zijn om uw applicatie zo te configureren dat deze het beste bij uw behoeften past. Er zijn natuurlijk meerdere configuratieopties voor uw applicatie, maar omdat de implementatiemethode voor alle opties identiek is, richten we ons in deze gids op de volgende configuraties: We gebruiken delog_level optie als voorbeeld voor Ruby, Elixir, Node.js en Python applicaties.
We gebruiken de namespace optie als voorbeeld voor front-end JavaScript-applicaties.
Configuratiemethoden
Er zijn meerdere manieren om uw AppSignal-integratie te configureren, en integraties kunnen variëren afhankelijk van de taal van uw applicatie, maar ze hebben allemaal de volgende configuratiemethoden:- Bestandsgebaseerde configuratie:
Een configuratiebestand waaruit de AppSignal-integratie de AppSignal-configuratie leest. - Configuratie via systeemomgevingsvariabelen:
Omgevingsvariabelen worden ingesteld op het hostsysteem (server) op het bovenliggende proces dat uw applicatie start.
Opmerking: Deze methode is niet beschikbaar voor front-end JavaScript.
Bestandsgebaseerde configuratie
Bestandsgebaseerde configuratie is de eenvoudigste manier om uw integratie te configureren. Sommige integraties maken een configuratiebestand aan tijdens de installatie van AppSignal in de app. In deze configuratiebestanden kunt u op unieke wijze één of meerdere applicatieomgevingen configureren. Configuratieopties voor:Ruby
Bij gebruik van de Ruby integratie-gem wordt bij installatie het bestandconfig/appsignal.yml aangemaakt in de hoofdmap van uw applicatie, met basisconfiguratie-instellingen. Als uw applicatie gegevens rapporteert aan AppSignal zonder een appsignal.yml bestand, gebruikt uw applicatie hoogstwaarschijnlijk systeemomgevingsvariabelen.
In het onderstaande voorbeeldconfiguratiebestand zijn twee omgevingen gedefinieerd, development en production - elk heeft omgevingsspecifieke configuratieopties die eronder zijn genest. Alles wat gedefinieerd en genest is binnen default is van toepassing op alle omgevingen, zolang default is opgenomen in de omgevingsmapping.
We willen het log_level uitsluitend instellen op debug in onze development-omgeving; om dit te doen hebben we log_level: "debug" toegevoegd in de development-omgevingsconfiguratie (regel 10).
default wordt toegepast op alle omgevingen, dus om het log_level in te stellen op debug in alle omgevingen kunnen we in plaats daarvan de configuratie onder default nesten, zoals gedaan op regel 6 van het onderstaande voorbeeld:
Meer lezen:
- Configuratie-onderwerp Ruby-integratie
- Details over de configuratie-laadvolgorde van de Ruby-integratie
Elixir
Bij installatie creëert de Elixir-integratie eenconfig/appsignal.exs (standaardlocatie) bestand met basisconfiguraties. Als dit bestand niet aanwezig is, maar uw applicatie wel gegevens rapporteert aan AppSignal, controleer dan een van de andere .exs bestanden in de map config/ van uw Elixir-app. Als er in geen van de bestanden AppSignal-configuratie aanwezig is, gebruikt uw applicatie waarschijnlijk systeemomgevingsvariabelen als configuratiemethode.
Om een configuratieoptie toe te voegen en deze toe te passen op alle omgevingen van uw applicatie, voegt u de configuratieoptie toe aan het bestand config/appsignal.exs, zoals op regel 7 van het onderstaande voorbeeld:
config/ bevindt.
In het onderstaande voorbeeld is de log_level optie toegevoegd op regel 3 van de development (of “dev”) omgeving:
Meer lezen
- Configuratie-onderwerp Elixir-integratie
- Details over de configuratie-laadvolgorde van de Elixir-integratie
Node.js
Na installatie moet u een AppSignal-configuratiebestand aanmaken om uw applicatie te configureren. Als er geen bestand met AppSignal-configuratie aanwezig is, gebruikt deze hoogstwaarschijnlijk systeemomgevingsvariabelen als configuratiemethode. Om AppSignal voor Node.js apps te configureren, raden we aan om eenappsignal.js bestand met de AppSignal-configuratie te maken in de hoofd- of src-map van uw applicatie. Vereist/importeer het vervolgens vanuit de code van de app voordat andere pakketten worden vereist of geïmporteerd.
In het onderstaande voorbeeld is er een appsignal.js bestand in de hoofdmap van de app. In dit bestand voegen we de logLevel configuratieoptie toe.
NODE_ENV, standaard “development”).
In Node.js zijn er veel manieren om omgevingsspecifieke configuraties voor AppSignal te maken. Als u niet zeker weet hoe u dit binnen uw eigen applicatie moet doen, is een methode die we aanbevelen het gebruik van conditionals in uw appsignal.js, zoals in het onderstaande voorbeeld waar we debug specificeren voor de productie-omgeving.
- Op regel 4 - we activeren de AppSignal-integratie alleen als de omgeving production is.
- Op regel 8 - zoals in ons vorige codevoorbeeld stellen we de
logLevelin opdebug
appsignal.js heel bovenaan het hoofdbestand van uw app vereisen. De naam van het hoofdbestand van uw applicatie kan variëren afhankelijk van hoe uw applicatie is gestructureerd. Het is het bestand dat u gebruikt om uw Node-applicatie te starten en wordt meestal index.js of app.js genoemd. Zorg ervoor dat AppSignal heel bovenaan het bestand wordt vereist, zoals in het onderstaande voorbeeld:
Meer lezen
Python
Bij gebruik van de Python-integratie-installer wordt het bestand__appsignal__.py aangemaakt in de hoofdmap van uw applicatie, met basisconfiguratie-instellingen. Uw applicatie kan ook worden geconfigureerd met behulp van systeemomgevingsvariabelen.
Om een configuratieoptie toe te voegen en deze toe te passen op uw development-applicatieomgeving, voegt u de configuratieoptie toe aan het bestand __appsignal__.py, zoals in het onderstaande voorbeeld.
environment configuratieoptie op dezelfde manier waarop uw app zijn omgeving bepaalt (development/staging/production). Dit kan via een systeemomgevingsvariabele of een andere applicatiespecifieke methode. In het onderstaande voorbeeld gebruiken we een systeemomgevingsvariabele MY_APP_ENV om zowel de app-omgeving in te stellen als alleen te activeren voor de productie-omgeving.
Meer lezen:
- Configuratie-onderwerp Python-integratie
- Details over de configuratie-laadvolgorde van de Python-integratie
Front-end JavaScript
Om AppSignal voor front-end JavaScript te configureren, raden we aan om eenappsignal.js bestand met de AppSignal-configuratie te maken in de hoofd- of src-map van uw project. Vereist of importeer het vervolgens vanuit de code van de app voordat andere pakketten worden vereist of geïmporteerd.
In het onderstaande voorbeeld is er een appsignal.js bestand in de hoofdmap van de applicatiemap. Op regel 8 hebben we de namespace configuratieoptie toegevoegd.
appsignal.js heel bovenaan het hoofdbestand van uw applicatie vereisen, zoals in het onderstaande voorbeeld:
Meer lezen
Configuratie via systeemomgevingsvariabelen
Systeemomgevingsvariabelen, of kortweg “omgevingsvariabelen”, zijn variabelen die toegankelijk zijn voor processen en worden geërfd van het bovenliggende proces dat ze start. In plaats van een configuratiebestand te gebruiken voor configuratie, is het mogelijk om AppSignal alleen te configureren met behulp van omgevingsvariabelen. Het is ook mogelijk om configuratiesleutels die gevoelige gegevens bevatten, zoals de Push API-sleutel, in een omgevingsvariabele op te slaan en configuratiebestanden te gebruiken voor de rest van de configuratie. Deze configuratiemethode is compatibel met Ruby-, Elixir- en Node.js-applicaties. Voordat we verdergaan met het volgende voorbeeld van het instellen van omgevingsvariabelen via een shell, leggen we uit hoe omgevingsvariabelen werken met betrekking tot shells en processen. Omgevingsvariabelen kunnen toebehoren aan een proces zoals een shell of uw applicatie. Het commandoexport FOO=BAR zou bijvoorbeeld de FOO omgevingsvariabele van uw shell instellen op BAR. Omgevingsvariabelen worden geërfd tussen processen, dus wanneer die shell een nieuw proces start, heeft dat proces ook alle omgevingsvariabelen van de shell.
Wanneer u een proces in de shell start (d.w.z. npm start) kunt u ook meer omgevingsvariabelen alleen voor dat proces opgeven door de variabelen als volgt toe te kennen: FOO=BAR npm start
Voor het gemak wilt u misschien uw shell configureren om bepaalde omgevingsvariabelen in te stellen wanneer deze start, zodat alle vanuit die shell gestarte processen die omgevingsvariabelen erven. Als u de bash shell gebruikt, worden de commando’s in het .bash_profile bestand in uw home-map uitgevoerd wanneer de shell wordt gestart. Bij gebruik van zsh, de standaardshell in macOS, wordt in plaats daarvan het .zshenv bestand gebruikt om omgevingsvariabelen te configureren.
In het onderstaande voorbeeldbestand exporteren we de omgevingsvariabelen die de Push API-sleutel en het loglevel van AppSignal configureren, zodat wanneer een nieuwe shell wordt gestart, de juiste omgevingsvariabelen toegankelijk zijn voor uw applicatie, waardoor deze kan communiceren met AppSignal.
Configuratieopties die zijn ingesteld via omgevingsvariabelen zijn van toepassing op alle applicatieomgevingen, maar sommige configuratieopties zijn taalspecifiek. Bijvoorbeeld, de configuratieoptie instrument_sequel bestaat alleen in de Ruby-integratie, omdat Sequel een Ruby gem is, en daarom heeft het instellen van de APPSIGNAL_INSTRUMENT_SEQUEL omgevingsvariabele geen effect voor andere integraties.
~/.profileof~/.bash_profile- Gebruikersspecifieke instellingen. Gebruik deze locatie om omgevingsvariabelen per gebruiker te configureren./etc/profile- Systeembrede instellingen. Als meerdere gebruikers of apps dezelfde hostmachine gebruiken, gebruik deze locatie dan niet.
Zorg er bij gebruik van configuratie op basis van systeemomgevingsvariabelen voor
dat u de waarde “System environment key” uit de configuratieopties-tabel als
configuratiesleutel gebruikt. Deze sleutel is altijd in hoofdletters* snake case,
zoals dit:
Leuk weetje: dit staat ook bekend als SCREAMING_SNAKE_CASE 🐍
EXAMPLE_OF_A_CONFIG_KEYLeuk weetje: dit staat ook bekend als SCREAMING_SNAKE_CASE 🐍