Naar hoofdinhoud gaan
Hoe uw applicatie functioneert kan veranderen bij elke nieuwe deployment. Door uw deploys bij te houden met AppSignal worden foutincidenten en prestatiemetingen per deployment gegroepeerd, zodat u eenvoudig kunt zien welke impact uw deployment heeft gehad op de prestaties en het foutpercentage van uw applicatie. AppSignal kan u van een foutbacktrace meenemen naar de regel code waar een specifieke fout vandaan kwam, en dit helpt Deze gids laat u zien hoe u deploys bijhoudt in AppSignal met behulp van deploy markers.
Lees meer diepgaande informatie over deploy markers en waar ze voor worden gebruikt.

AppSignal configureren

Deze gids gebruikt de revision configuratieoptie-methode om deploy markers te rapporteren. U kunt lezen over alternatieve benaderingen hiervan in onze Deploy Markers documentatie. De revision configuratieoptie wordt anders geconfigureerd per integratietaal. Zie de lijst met integraties hieronder voor de taal die uw app gebruikt. Houd er rekening mee dat AppSignal automatisch een deploy rapporteert bij gebruik van platforms zoals Heroku of Render, of deployment-orchestrators zoals Kamal.

De revisie automatisch bijwerken

We raden aan om de waarde van de revision configuratieoptie dynamisch op te halen uit het source control management dat voor uw project wordt gebruikt (zoals Git of SVN) bij start of deploy. Op deze manier hoeft de waarde niet handmatig per deploy te worden bijgewerkt. Als een Git commit-hash wordt gebruikt, is deze ook compatibel met foutbacktrace-links. Hieronder een voorbeeld van hoe u dit zou doen met Git:
git rev-parse --short HEAD
# Will output the current commit's short SHA
We blijven Git gebruiken voor alle integratievoorbeelden in deze documentatie.

Configuraties per taal

Ruby

Voor Ruby-applicaties laden we de Git-revisie uit het configuratiebestand. Het shell-commando dat we uitvoeren in de revision configuratieoptie is hetzelfde commando dat we eerder gebruikten om de hash van de huidige commit op te halen. We roepen het git rev-parse commando aan en stellen de uitvoer in als de revision configuratieoptie, zoals in het onderstaande voorbeeld:
Appsignal.configure do |config|
  config.revision = `git rev-parse --short HEAD`.strip
end

Ruby deploy-gems gebruiken

Als u een deployment-tool gebruikt zoals Capistrano of Hatchbox die de .git-map uitsluit van deployment:
  • Pas het deploy-proces aan om een commando uit te voeren dat een REVISION bestand aanmaakt in de current-map dat de Git-hash bevat: git rev-parse --short HEAD > REVISION
Bij gebruik van een Platform-as-a-Service provider, kan de provider dit bestand voor u maken, of de revisie blootstellen als een omgevingsvariabele die u uit het configuratiebestand kunt lezen. Als u niet zeker weet of dit op u van toepassing is, neem dan contact op met uw provider of neem contact op, wij weten mogelijk het antwoord. Hieronder een voorbeeld van hoe u de Git-hash uit een REVISION bestand kunt lezen bij gebruik van Rails:
Appsignal.configure do |config|
  revision = Rails.root.join("REVISION") if defined?(Rails)
  config.revision = revision.read.strip[0, 7] if revision&.exist?
end
Meer lezen over de details van de Ruby revision configuratieoptie

Elixir

Voor Elixir-applicaties laden we de Git-revisie in het config/appsignal.exs configuratiebestand (uw bestandslocatie kan verschillen). In het onderstaande voorbeeld config/appsignal.exs bestand roepen we het git rev-parse commando aan met Elixir en stellen de uitvoer in als de revision configuratieoptie.
# Example: config/appsignal.exs
{revision, _exitcode} = System.cmd("git", ["log", "--pretty=format:%h", "-n 1"])
config :appsignal, :config,
  revision: revision
  # Other config options
Meer lezen over de details van de Elixir revision configuratieoptie

Node.js

Voor Node.js-applicaties wordt de Git-revisie geladen in het configuratiebestand van de app. In de onderstaande .js snippet roepen we het git rev-parse commando aan met Node.js en stellen de uitvoer in als de revision configuratieoptie.
// Example: appsignal.js
const childProcess = require("child_process");
const REVISION = childProcess.execSync("git rev-parse --short HEAD").toString();
const appsignal = new Appsignal({
  revision: REVISION,
  // Other config
});

module.exports = { appsignal };
Meer lezen over de details van de Node.js revision configuratieoptie

Python

Voor Python-applicaties wordt de Git-revisie geladen in het __appsignal__.py configuratiebestand van de applicatie. In het onderstaande voorbeeld roepen we het git rev-parse commando aan met Python en stellen de uitvoer in als de revision configuratieoptie. Het shell-commando dat we uitvoeren is hetzelfde commando dat we eerder gebruikten om de hash van de huidige commit op te halen.
# Example: __appsignal__.py
import subprocess
from appsignal import Appsignal

revision = subprocess.check_output(
    "git rev-parse --short HEAD", shell=True, text=True
).strip()

appsignal = Appsignal(
    # Other config
    revision=revision
)
Meer lezen over de details van de Python revision configuratieoptie

Front-end JavaScript

Omdat front-end JavaScript-applicaties in de browser draaien, is het niet mogelijk om het git uitvoerbare commando aan te roepen vanuit uw front-end applicatie om de huidige revision op te halen. Er zijn twee veelvoorkomende benaderingen om de revisiewaarde door te geven aan uw front-end applicatie:

Omgevingsvariabelen tijdens build-tijd gebruiken (aanbevolen voor losgekoppelde front-ends)

Moderne front-end build-tools sluiten omgevingsvariabelen in uw bundle in tijdens de build-tijd. U kunt de Git-revisie via een van deze variabelen doorgeven en ernaar verwijzen in uw AppSignal-configuratie. Het variabel-prefix en het toegangspatroon zijn afhankelijk van uw build-tool. Het onderstaande voorbeeld gebruikt Vite, dat omgevingsvariabelen met het prefix VITE_ blootstelt via het import.meta.env object. Stel de variabele in voordat u bouwt:
export VITE_REVISION=$(git rev-parse --short HEAD)
npm run build
Lees deze vervolgens in het bestand waar u AppSignal configureert:
// Example: appsignal.js
export const appsignal = new Appsignal({
  revision: import.meta.env.VITE_REVISION,
  // Other config
});
Importeer de geconfigureerde appsignal instance overal waar u uw app initialiseert. Bijvoorbeeld in de main.js van een Vue-applicatie:
// Example: main.js
import { createApp } from "vue";
import App from "./App.vue";
import { appsignal } from "./appsignal";
import { errorHandler } from "@appsignal/vue";

const app = createApp(App);
app.config.errorHandler = errorHandler(appsignal, app);

app.mount("#app");

Een door de back-end gerenderd HTML-attribuut gebruiken

Als uw front-end wordt gerenderd door een back-end applicatie (zoals een Ruby- of Elixir-applicatie), kunt u de revision waarde definiëren in de HTML-body als een data-attribuut:
<body data-app-revision="REVISION VALUE">
  <!-- Rest of the HTML -->
</body>
Haal deze waarde vervolgens op in uw JavaScript:
// Example: appsignal.js
const body = document.body;
export const appsignal = new Appsignal({
  revision: body.dataset.appRevision,
  // Other config
});
Meer lezen over de details van de JavaScript revision configuratieoptie

Go

Voor Go-applicaties wordt de revisie ingesteld op een OpenTelemetry resource-attribuut wanneer OpenTelemetry wordt geïnitialiseerd. In het onderstaande voorbeeld roepen we het git rev-parse commando aan en stellen de uitvoer in als het appsignal.config.revision resource-attribuut. Het shell-commando dat we uitvoeren is hetzelfde commando dat we eerder gebruikten om de hash van de huidige commit op te halen.
import (
	"os/exec"

	// And other imports
)

var revision string
cmd := exec.Command("git", "rev-parse", "--short", "HEAD")
output, err := cmd.Output()
if err != nil {
	revision = "unknown"
} else {
	revision = strings.TrimSpace(string(output))
}

res := resource.NewWithAttributes(
	resource.WithAttributes(attribute.String("appsignal.config.revision", revision)),
	// And other resource attributes
)
Voor Go-applicaties is de appsignal.config.revision configuratieoptie een verplichte configuratie en moet deze dus al zijn ingesteld. Raadpleeg de appsignal.config.revision configuratieoptie voor meer informatie.

Java

Voor Java-applicaties stelt u de revisie in met behulp van de OTEL_RESOURCE_ATTRIBUTES omgevingsvariabele. We gebruiken hetzelfde Git-commando zoals eerder is getoond.
export OTEL_RESOURCE_ATTRIBUTES="\
  appsignal.config.revision=$(git rev-parse --short HEAD),\
  ..."
Voor Java-applicaties is de appsignal.config.revision configuratieoptie een verplichte configuratie en moet deze dus al zijn ingesteld. Raadpleeg de appsignal.config.revision configuratieoptie voor meer informatie.

PHP

Voor PHP-applicaties stelt u de revisie in uw configuratie in om de standaardwaarde te overschrijven. Standaard stelt AppSignal de revisie in met hetzelfde Git-commando dat wordt getoond in De revisie automatisch bijwerken.
$revision = trim(shell_exec('git rev-parse --short HEAD 2>/dev/null')) ?: 'unknown';

return [
    'revision' => $revision,
    // ... other options
];
Raadpleeg de appsignal.config.revision configuratieoptie voor meer informatie.

Deploy

Wanneer u klaar bent met het configureren van de revision optie, commit uw wijzigingen en deploy uw applicatie. Wanneer de app start/herstart, maakt AppSignal een deploy aan in de deploys-sectie voor uw app. Dat is alles! U heeft uw applicatie met succes geconfigureerd om AppSignal op de hoogte te stellen van deploys! De gegevens van uw applicatie worden bijgehouden naast de bijbehorende deployment, wat u helpt om uw mogelijkheid om de prestaties van uw applicatie te analyseren te verbeteren. Worden deploys niet of onjuist gerapporteerd? Neem contact met ons op en wij helpen u verder!