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

# AppSignal Wrap voor processmonitoring

export const Compatibility = ({versions = [], label = "Available in"}) => {
  if (!Array.isArray(versions) || versions.length === 0) {
    return null;
  }
  const defaultPillStyle = {
    borderColor: "#d4d4d8",
    background: "#f4f4f5",
    color: "#3f3f46"
  };
  const pillStyles = {
    "AppSignal for Elixir": {
      background: "#f3e8ff",
      borderColor: "#d8b4fe",
      color: "#6b21a8"
    },
    "AppSignal for Front-end": {
      background: "#fef9c3",
      borderColor: "#fde047",
      color: "#854d0e"
    },
    "AppSignal for Go": {
      background: "#ccfbf1",
      borderColor: "#5eead4",
      color: "#115e59"
    },
    "AppSignal for JavaScript": {
      background: "#fef9c3",
      borderColor: "#fde047",
      color: "#854d0e"
    },
    "AppSignal for Node.js": {
      background: "#dcfce7",
      borderColor: "#86efac",
      color: "#166534"
    },
    "AppSignal for Python": {
      background: "#dbeafe",
      borderColor: "#93c5fd",
      color: "#1e40af"
    },
    "AppSignal for Ruby": {
      background: "#fee2e2",
      borderColor: "#fca5a5",
      color: "#991b1b"
    },
    "AppSignal for Rust": {
      background: "#ffedd5",
      borderColor: "#fdba74",
      color: "#9a3412"
    }
  };
  const getPillStyle = name => ({
    ...defaultPillStyle,
    ...pillStyles[name] || ({})
  });
  return <div className="not-prose my-4 rounded-lg border border-zinc-200 bg-zinc-50 px-4 py-3 text-sm dark:border-white/10 dark:bg-white/5">
      <div className="flex flex-wrap items-center gap-x-2 gap-y-1">
        <span className="font-semibold text-zinc-700 dark:text-zinc-200">
          {label}:
        </span>
        {versions.map((v, i) => <span key={`${v.name}-${v.version}-${i}`} className="inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-xs font-medium" style={getPillStyle(v.name)}>
            <span>{v.name}</span>
            <span className="opacity-70">
              {v.version}
              {v.exact ? "" : "+"}
            </span>
          </span>)}
      </div>
    </div>;
};

AppSignal biedt `appsignal-wrap`, een tool om processen op uw server te monitoren, zoals uw cron jobs, uw databaseserver of andere processen die bij uw applicatie horen.

De tool `appsignal-wrap` integreert naadloos met de cron- en heartbeat-procesmonitoren, logging en foutrapportage van AppSignal. Hij kan worden gebruikt om elk proces op uw servers te monitoren, ongeacht de taal of het framework waarin het is geschreven.

### AppSignal Wrap helpt antwoord te geven op vragen zoals:

<div style={{ display: 'flex', alignItems: 'center', gap: '12px', marginBottom: '12px' }}>
  <span style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: '32px', height: '32px', minWidth: '32px', backgroundColor: '#dcfce7', borderRadius: '8px' }}>
    <Icon icon="check" color="#22c55e" />
  </span>

  <span>Is mijn databaseproces actief en draaiend?</span>
</div>

<div style={{ display: 'flex', alignItems: 'center', gap: '12px', marginBottom: '12px' }}>
  <span style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: '32px', height: '32px', minWidth: '32px', backgroundColor: '#dcfce7', borderRadius: '8px' }}>
    <Icon icon="check" color="#22c55e" />
  </span>

  <span>Draait mijn cron job op tijd?</span>
</div>

<div style={{ display: 'flex', alignItems: 'center', gap: '12px', marginBottom: '12px' }}>
  <span style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: '32px', height: '32px', minWidth: '32px', backgroundColor: '#dcfce7', borderRadius: '8px' }}>
    <Icon icon="check" color="#22c55e" />
  </span>

  <span>Wat ging er mis met mijn backup-script?</span>
</div>

<div style={{ display: 'flex', alignItems: 'center', gap: '12px', marginBottom: '12px' }}>
  <span style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: '32px', height: '32px', minWidth: '32px', backgroundColor: '#dcfce7', borderRadius: '8px' }}>
    <Icon icon="check" color="#22c55e" />
  </span>

  <span>Is mijn applicatieserver niet gestart?</span>
</div>

### Belangrijkste functies van appsignal-wrap

Na het installeren van `appsignal-wrap` kunt u de tool gebruiken om processen te starten die u wilt monitoren. De tool `appsignal-wrap` zal vervolgens:

<div style={{ display: 'flex', alignItems: 'flex-start', gap: '12px', marginBottom: '12px' }}>
  <span style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: '32px', height: '32px', minWidth: '32px', backgroundColor: '#fce7f3', borderRadius: '8px' }}>
    <Icon icon="line-columns" color="#ec4899" />
  </span>

  <span>De standaarduitvoer en standaardfout van het proces rapporteren als logs die u kunt filteren en doorzoeken in [AppSignal Logging](/logging).</span>
</div>

<div style={{ display: 'flex', alignItems: 'flex-start', gap: '12px', marginBottom: '12px' }}>
  <span style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: '32px', height: '32px', minWidth: '32px', backgroundColor: '#dbeafe', borderRadius: '8px' }}>
    <Icon icon="square-check" iconType="solid" color="#3b82f6" />
  </span>

  <span>[Cron-procesmonitoren](/check-ins) versturen om te rapporteren dat het proces succesvol is gestart en voltooid, of [heartbeat-procesmonitoren](/check-ins) om de uptime bij te houden.</span>
</div>

<div style={{ display: 'flex', alignItems: 'flex-start', gap: '12px', marginBottom: '12px' }}>
  <span style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: '32px', height: '32px', minWidth: '32px', backgroundColor: '#fee2e2', borderRadius: '8px' }}>
    <Icon icon="siren-on" iconType="solid" color="#ef4444" />
  </span>

  <span>Mislukte exit-statussen rapporteren als errors aan AppSignal.</span>
</div>

## Installatie

De eenvoudigste manier om `appsignal-wrap` te installeren, is door het volgende commando uit te voeren:

<CodeGroup>
  ```bash Bash theme={null}
  curl -sSL https://github.com/appsignal/appsignal-wrap/releases/latest/download/install.sh | sudo sh
  ```
</CodeGroup>

Het commando downloadt automatisch de laatste release van `appsignal-wrap` voor uw OS (besturingssysteem) en architectuur, en installeert deze in het `$PATH` van uw server.

Zowel Linux als macOS worden ondersteund, in de x86 64-bit (Intel)- en ARM 64-bit (Apple Silicon)-architecturen. Alpine Linux wordt ook ondersteund via onze `musl`-geactiveerde builds voor beide architecturen.

Alternatief kunt u de laatste release downloaden van de [GitHub releases-pagina](https://github.com/appsignal/appsignal-wrap/releases/latest/) voor uw besturingssysteem en architectuur, en handmatig installeren in het `$PATH` van uw server.

## Gebruik

Om een proces te monitoren met `appsignal-wrap`, geeft u het commando dat u wilt monitoren als laatste argument mee aan `appsignal-wrap`. Bijvoorbeeld:

<CodeGroup>
  ```sh Shell theme={null}
  export APPSIGNAL_APP_PUSH_API_KEY=[APP_LEVEL_API_KEY]
  appsignal-wrap [NAME] -- [COMMAND]
  ```
</CodeGroup>

In het bovenstaande voorbeeld is `[NAME]` de naam die u wilt gebruiken om het proces in AppSignal te identificeren, en `[COMMAND]` is het commando dat u wilt monitoren. Zowel de naam als het commando zijn verplicht. Bijvoorbeeld:

<CodeGroup>
  ```sh Shell theme={null}
  appsignal-wrap backup-script -- bash /var/app/backup.sh
  ```
</CodeGroup>

U hebt een AppSignal app-level API-sleutel nodig, die u kunt vinden in de ["Push & Deploy"](https://appsignal.com/redirect-to/app?to=api_keys\&key_tab=app)-instellingen van uw AppSignal-app.

U kunt deze aan `appsignal-wrap` doorgeven als argument bij de command-line-optie `--api-key`, of als de omgevingsvariabele `APPSIGNAL_APP_PUSH_API_KEY`.

Standaard rapporteert `appsignal-wrap` de standaarduitvoer en standaardfout van het proces als logs aan AppSignal, en rapporteert alle mislukte exit-statussen aan AppSignal als errors.

<span id="check-ins" />

## Procesmonitoring

<Tip>
  [Lees onze documentatie over procesmonitoring](/check-ins) voor meer informatie over hoe
  AppSignal procesmonitoring werkt.
</Tip>

Standaard stuurt `appsignal-wrap` geen procesmonitor-events. U kunt de command-line opties `--cron`
of `--heartbeat` gebruiken om respectievelijk cron- of heartbeat-procesmonitors in te schakelen.

De `appsignal-wrap`-tool gebruikt de naam die als eerste argument is opgegeven als de identifier van de procesmonitor. Bijvoorbeeld, om cron-procesmonitor-events te rapporteren met `backup-script` als identifier van de procesmonitor:

<CodeGroup>
  ```sh Shell theme={null}
  appsignal-wrap backup-script --cron -- bash /var/app/backup.sh
  ```
</CodeGroup>

### Cron-procesmonitors

Bij gebruik van `--cron` om cron-procesmonitors te verzenden, stuurt `appsignal-wrap` een start-cron-procesmonitor-event wanneer het proces start, en een finish-cron-procesmonitor-event als het proces succesvol wordt afgerond.

Als het proces eindigt met een mislukte exit-status, stuurt `appsignal-wrap` geen finish-cron-procesmonitor-event.

### Heartbeat-procesmonitors

Bij gebruik van `--heartbeat` om heartbeat-procesmonitors te verzenden, stuurt `appsignal-wrap` continu heartbeat-procesmonitor-events tijdens de levensduur van het proces.

### Aangepaste identifier

Om procesmonitor-events naar AppSignal te sturen met een identifier die verschilt van de naam die als eerste argument is opgegeven, kunt u een andere identifier als argument doorgeven aan de command-line opties `--cron` of `--heartbeat`. Bijvoorbeeld:

<CodeGroup>
  ```sh Shell theme={null}
  appsignal-wrap backup --cron daily-backup -- bash /var/app/backup.sh
  ```
</CodeGroup>

In het bovenstaande voorbeeld stuurt `appsignal-wrap` cron-procesmonitor-events met `daily-backup` als identifier van de procesmonitor, maar gebruikt het nog steeds `backup` als naam om het proces te identificeren bij het rapporteren van logs en errors.

## Logging

Standaard stuurt `appsignal-wrap` zowel de standaard output als de standaard error van het proces dat het monitort als logs naar AppSignal. De logs verschijnen onder de bron "application", en de naam die als eerste argument is opgegeven, wordt gebruikt als de log group.

### Logging uitschakelen

Om het verzenden van ofwel de standaard output of de standaard error als logs uit te schakelen, kunt u respectievelijk de command-line opties `--no-stdout` of `--no-stderr` gebruiken.

Om het verzenden van logs helemaal uit te schakelen, kunt u de command-line optie `--no-log` gebruiken.

### Aangepaste log group

Om logs als een andere log group te verzenden, kunt u deze als argument doorgeven aan de command-line optie `--log`. Bijvoorbeeld:

<CodeGroup>
  ```sh Shell theme={null}
  appsignal-wrap mysql --log db -- mysqld
  ```
</CodeGroup>

In het bovenstaande voorbeeld gebruikt `appsignal-wrap` `db` als de log group bij het verzenden van logs naar AppSignal, maar wordt nog steeds `mysql` gebruikt als naam om het proces te identificeren bij het rapporteren van procesmonitors en errors.

### Aangepaste log-bron

Om logs naar een andere log-bron te verzenden, kunt u de API-sleutel van de log-bron, die u verkrijgt bij [het aanmaken van een log-bron](https://docs.appsignal.com/logging/configuration.html#creating-a-log-source), als argument doorgeven aan de command-line optie `--log-source`, of als de omgevingsvariabele `APPSIGNAL_LOG_SOURCE_API_KEY`. Bijvoorbeeld:

<CodeGroup>
  ```sh Shell theme={null}
  export APPSIGNAL_LOG_SOURCE_API_KEY=[LOG_SOURCE_API_KEY]
  appsignal-wrap mysql -- mysqld
  ```
</CodeGroup>

## Foutrapportage

Standaard rapporteert `appsignal-wrap` alle mislukte exit-statussen van het proces dat het monitort als errors aan AppSignal. De errors worden gegroepeerd op de naam die als eerste argument is opgegeven.

### Foutrapportage uitschakelen

Om het rapporteren van errors volledig uit te schakelen, kunt u de command-line-optie `--no-error` gebruiken.

### Uitvoer in foutmeldingen

Bij het rapporteren van errors aan AppSignal voegt `appsignal-wrap` de laatste regels van de standaarduitvoer en standaardfout van het proces toe als foutmelding.

Door de command-line-opties `--no-stdout` of `--no-stderr` te gebruiken voorkomt u dat de standaarduitvoer of standaardfout in de foutmelding wordt opgenomen.

Door beide opties te gebruiken, worden er helemaal geen logs in de foutmelding opgenomen.

### Aangepaste foutgroepering

Om errors anders te groeperen, kunt u een andere naam meegeven als argument aan de command-line-optie `--error`. Bijvoorbeeld:

<CodeGroup>
  ```sh Shell theme={null}
  appsignal-wrap backup --error user-backup -- bash /var/app/backup.sh --only-users
  ```
</CodeGroup>

In het bovenstaande voorbeeld rapporteert `appsignal-wrap` errors met `user-backup` als foutgroep, maar gebruikt nog steeds `backup` als naam om het proces te identificeren bij het rapporteren van logs en procesmonitoren.

### Applicatierevisie

<Compatibility versions={[{ name: "AppSignal Wrap", version: "0.3.1" }]} />

Als een revisie wordt opgegeven via de vlag `--revision` of de omgevingsvariabele `APPSIGNAL_REVISION`, worden errors gegroepeerd met de deployment voor die revisie.

## Procesgedrag

De tool `appsignal-wrap` streeft ernaar *transparant* te zijn -- dat wil zeggen, het uitvoeren van een commando met `appsignal-wrap` zou hetzelfde gedrag moeten hebben als het uitvoeren van datzelfde commando op zichzelf.

<Note>
  Nadat het gemonitorde proces is voltooid, wacht `appsignal-wrap` korte tijd *(meestal een seconde of minder)* voordat het wordt afgesloten, om ervoor te zorgen dat alle logs en procesmonitoren naar AppSignal worden verzonden.

  Als u `appsignal-wrap` aanroept in een loop, kan de vertraging veroorzaakt door dit wachten ervoor zorgen dat de loop langzamer draait dan verwacht.
</Note>

### Omgevingsvariabelen

Het proces erft automatisch de omgevingsvariabelen van het `appsignal-wrap`-bovenliggende proces.

### Exit-status

Als het proces dat het monitort wordt afgesloten met een exit-code, wordt `appsignal-wrap` afgesloten met dezelfde mislukte exit-code.

Als het proces dat het monitort wordt beëindigd door een signaal, wordt `appsignal-wrap` afgesloten met een mislukte exit-code van `128 + signal`, waarbij `signal` het nummer is dat het signaal vertegenwoordigt dat ervoor heeft gezorgd dat het proces werd beëindigd. Welk signaal dit nummer vertegenwoordigt is afhankelijk van het besturingssysteem.

### Invoer en uitvoer

Het proces erft automatisch zijn standaardinvoer-descriptor van het `appsignal-wrap`-bovenliggende proces.

Naast het rapporteren ervan aan AppSignal, worden de standaarduitvoer en standaardfout van het proces doorgesluisd naar de standaarduitvoer en standaardfout van het `appsignal-wrap`-bovenliggende proces.

Bij gebruik van `--no-stdout` of `--no-stderr` erft het proces automatisch respectievelijk de standaarduitvoer- of standaardfout-descriptor van het `appsignal-wrap`-bovenliggende proces.

Dit betekent dat u `appsignal-wrap` kunt gebruiken in een pipeline of de uitvoer kunt omleiden naar een bestand, bijvoorbeeld:

<CodeGroup>
  ```sh Shell theme={null}
  # Without monitoring
  grep "active" customers.csv \
      | python /var/app/import.py \
      > /var/log/import.log

  # With monitoring
  grep "active" customers.csv \
      | appsignal-wrap import-customers -- python /var/app/import.py \
      > /var/log/import.log
  ```
</CodeGroup>

### Signalen

Wanneer het `appsignal-wrap`-proces een signaal ontvangt dat kan worden afgehandeld, stuurt het dit door naar het proces dat het monitort.

Bijvoorbeeld, het sturen van een `SIGTERM`-signaal naar het `appsignal-wrap`-bovenliggende proces zorgt ervoor dat het proces dat het monitort een `SIGTERM`-signaal ontvangt.

Wanneer het `appsignal-wrap`-bovenliggende proces een signaal ontvangt dat niet kan worden afgehandeld, zoals `SIGKILL` en `SIGSTOP`, of als het onverwacht crasht, wordt een `SIGTERM`-signaal verzonden naar het proces dat het monitort.
