> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Datenschutz und Telemetrie

Dokumente werden lokal verarbeitet und niemals an ABBYY oder Dritte übermittelt. Diese Seite beschreibt, welche Informationen den Container tatsächlich verlassen, was genau jedes Feld enthält und wie Sie den Datenstrom selbst einsehen oder kopieren können.

<h2 id="what-fineparser-sends-to-abbyy">
  Was FineParser an ABBYY sendet
</h2>

* **Lizenzvalidierung.** Bei der Verarbeitung eines Dokuments prüft FineParser das verbleibende Seitenguthaben Ihres Kontos und bucht die Anzahl der geparsten Seiten ab. Dies ist der Abrechnungsdatensatz. Schlägt die Abbuchung fehl, wird das Ergebnis zurückgehalten.
* **Telemetrie.** FineParser erzeugt für jeden Job eine Trace-Textspanne und einen Satz von Metrikaufzeichnungen, damit ABBYY die Nutzung Ihrem Konto zuordnen und nachvollziehen kann, wie das Produkt verwendet wird. Telemetrie ist ein Nutzungssignal, kein Abrechnungsmechanismus, und sie ist in Release-Builds immer aktiv.

Ist das Telemetrieziel nicht erreichbar, die Konfiguration fehlerhaft oder gar kein Netzwerk vorhanden, schreibt FineParser eine einzelne Zeile ins Protokoll und arbeitet für diesen Prozess mit deaktivierter Telemetrie weiter.

<h2 id="what-telemetry-contains">
  Inhalt der Telemetriedaten
</h2>

FineParser verwendet [OpenTelemetry](https://opentelemetry.io/) und erzeugt zwei Arten von Signalen: Metriken – also aggregierte Zählwerte und Histogramme – sowie Traces, die jeweils eine Textspanne pro Job enthalten. Beide nutzen denselben kleinen Satz von Attributen.

<h3 id="attributes-on-every-signal">
  Attribute in jedem Signal
</h3>

Diese Werte werden beim Start des Containers festgelegt und an alle ausgegebenen Daten angehängt.

| Attribut               | Wert                                                                                                                                                                                                                                      |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `service.name`         | Immer `fineparser`.                                                                                                                                                                                                                       |
| `service.version`      | Die Build-Version des Containers.                                                                                                                                                                                                         |
| `revenera.license_key` | Die GUID Ihres Lizenzschlüssels, in Kleinbuchstaben und normalisiert, sodass sich die Nutzung eines Kontos niemals auf mehrere Werte verteilt. Entfällt vollständig, wenn keine Lizenz vorhanden ist.                                     |
| `languages`            | Die Erkennungssprachen, mit denen der Container gestartet wurde, übernommen aus demselben Wert, der an die Erkennungs-Engine übergeben wird. In Kleinbuchstaben, ohne Duplikate, sortiert und begrenzt auf 16 Einträge mit je 32 Zeichen. |

<h3 id="per-job-attributes">
  Attribute pro Job
</h3>

Jedes Attribut pro Job stammt aus einer festen Menge zulässiger Werte. Ein Wert außerhalb dieser Menge wird verworfen statt ausgegeben, sodass ein Fehler im aufrufenden Code keine beliebige Zeichenfolge in ein Signal einschleusen kann.

| Attribut          | Zulässige Werte                                                                                                                               |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `outcome`         | `ok`, `denied`, `error`, `rejected`                                                                                                           |
| `mode`            | `accurate`, `fast`. Siehe [Erkennungsmodi](/de/fine-parser/basics/recognition-modes).                                                         |
| `doc_type`        | `pdf`, `tiff`, `png`, `jpeg`, `other`                                                                                                         |
| `output_type`     | `doclang`, `txt`, `json`. Siehe [Ausgabeformate](/de/fine-parser/basics/output-formats).                                                      |
| `decision`        | Die Lizenzentscheidung für den Job: `ok`, `out_of_credits`, `rate_limited`, `not_provisioned`, `no_instance`, `server_unreachable`, `unknown` |
| `op`              | Die gemessene Lizenzierungsoperation: `preview`, `debit`, `refund`                                                                            |
| `unbilled_reason` | `server_fault` oder `not_found`. Siehe [Nicht abgerechnete Seiten](#unbilled-pages) weiter unten.                                             |
| `correlation_id`  | Eine zufällige UUID, die für den Job erzeugt wird. Sie wird weder aus Ihren Daten noch aus dem Document abgeleitet.                           |
| `pages`           | Die Seitenzahl als Ganzzahl. Wird ausschließlich in der Job-Textspanne mitgeführt, niemals als Metrikdimension.                               |

Ein `outcome` von `rejected` bedeutet, dass die Anfrage abgelehnt wurde, bevor überhaupt eine Verarbeitung stattfand – etwa weil keine Datei angehängt war, das Ausgabeformat nicht unterstützt wurde oder der Upload fehlerhaft war. Dieser Wert wird getrennt von `error` geführt, damit eine fehlerhafte API-Nutzung durch einen Client nicht als Fehler von FineParser erscheint.

Ein `decision` von `unknown` bedeutet, dass der Lizenzserver einen Status zurückgegeben hat, den der Container nicht kennt. FineParser lehnt den Job in diesem Fall ab, denn die Grundhaltung des Produkts lautet „standardmäßig verweigern“ – und die Entscheidung wird gemeldet statt verworfen.

<h3 id="metrics">
  Metriken
</h3>

| Instrument                     | Typ        | Einheit        | Dimensionen                                  |
| ------------------------------ | ---------- | -------------- | -------------------------------------------- |
| `fineparser.jobs`              | Zähler     | Jobs           | `outcome`, `mode`, `doc_type`, `output_type` |
| `fineparser.pages`             | Zähler     | Seiten         | `doc_type`, `mode`                           |
| `fineparser.pages.per_job`     | Histogramm | Seiten         | `doc_type`, `mode`                           |
| `fineparser.job.duration`      | Histogramm | ms             | `mode`                                       |
| `fineparser.meter.decisions`   | Zähler     | Entscheidungen | `decision`                                   |
| `fineparser.meter.op.duration` | Histogramm | ms             | `op`                                         |
| `fineparser.pages.unbilled`    | Zähler     | Seiten         | `unbilled_reason`                            |

Der Lizenzschlüssel wird jeder Metrikaufzeichnung sowie den Attributen auf Container-Ebene beigefügt, sodass sich die Nutzung nach Lizenz gruppieren lässt – unabhängig davon, wie ein nachgelagertes Backend Ressourcenattribute zuordnet.

<h3 id="traces">
  Traces
</h3>

| Textspanne      | Art    | Enthält                                                                      |
| --------------- | ------ | ---------------------------------------------------------------------------- |
| `job`           | Server | Alle oben aufgeführten Attribute pro Job sowie `pages` und `correlation_id`. |
| `meter.preview` | Intern | Dauer des Licensing-Preview-Aufrufs.                                         |
| `meter.debit`   | Intern | Dauer des Licensing-Debit-Aufrufs.                                           |
| `meter.refund`  | Intern | Dauer des Licensing-Refund-Aufrufs.                                          |

Der Status der Job-Textspanne wird nur dann auf Fehler gesetzt, wenn das Ergebnis `error` lautet.

<h2 id="what-fineparser-never-collects">
  Was FineParser niemals erfasst
</h2>

FineParser erfasst keine Dokumentinhalte, keinen erkannten Text, keine Dateinamen, Dateipfade, Dateigrößen, Kundennamen, E-Mail-Adressen, Kontobezeichner, Benutzeridentitäten und keine IP-Adressen.

Ein Dateiname kann das Telemetriemodul über genau eine Funktion erreichen; diese liest die Dateiendung aus, gibt die Kategorie `doc_type` zurück und verwirft alles Übrige. Ein Test mit bösartigen Eingaben in der Testsuite von FineParser leitet Personennamen, Zeichenfolgen im SSN-Format, E-Mail-Adressen und temporäre Pfade durch das Modul und stellt sicher, dass nichts davon eine Senke erreicht.

Der Lizenzschlüssel ist der einzige bewusst kontobezogene Wert. Das Attribut `languages` ist eine Einstellung des Deployments und kein Kundendatum: Es wird beim Start festgelegt und ist für jeden Job identisch, den der Container verarbeitet.

Das Modul kann ausschließlich die elf auf dieser Seite aufgeführten Attributschlüssel ausgeben. Keine exportierte Funktion akzeptiert eine beliebige Attributzuordnung; das Hinzufügen eines Felds erfordert daher eine Codeänderung an der Positivliste.

<h2 id="inspecting-and-copying-the-stream">
  Datenstrom prüfen und kopieren
</h2>

Sie müssen sich nicht allein auf die Angaben dieser Seite verlassen: Mit zwei Umgebungsvariablen können Sie den Datenstrom einsehen, mit drei weiteren eine Kopie an ein Ziel Ihrer Wahl senden.

| Variable                         | Wirkung                                                                                                                     |
| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `FINEPARSER_TELEMETRY_STDOUT=on` | Gibt den exakten Datenstrom auf der Konsole des Containers aus.                                                             |
| `FINEPARSER_OTLP_ENDPOINT`       | Sendet eine identische Kopie des Datenstroms an einen von Ihnen angegebenen OTLP-Endpoint, etwa an Ihren eigenen Collector. |
| `FINEPARSER_OTLP_PROTOCOL`       | Das OTLP-Protokoll für diesen Endpoint.                                                                                     |
| `FINEPARSER_OTLP_HEADERS`        | Header für diesen Endpoint, beispielsweise ein Authentifizierungstoken.                                                     |
| `FINEPARSER_TELEMETRY=off`       | Wird in Release-Builds abgewiesen. Die Telemetrie kann nicht deaktiviert werden.                                            |

Sie können ein Ziel hinzufügen, aber niemals eines entfernen. Ihr Endpoint und der von ABBYY empfangen denselben Datenstrom, und dafür sorgt die Struktur des Codes selbst, nicht eine Richtlinie: Im Telemetrie-Modul gibt es weder ein ABBYY-eigenes Attribut noch einen zweiten Codepfad. Was Sie auf stdout oder in Ihrem eigenen Collector sehen, sieht ABBYY genauso.

FineParser stellt keinen Prometheus-Scrape-Endpoint bereit und gibt kein OpenTelemetry-Protokollsignal aus. Ereignisse pro Job werden stattdessen als Attribute der Textspanne übertragen.

<h2 id="unbilled-pages">
  Nicht abgerechnete Seiten
</h2>

Der Zähler `fineparser.pages.unbilled` erfasst Seiten, die an Sie ausgeliefert wurden, ohne dass eine Gebühr abgerechnet wurde. Das passiert nur, wenn der Lizenzserver nach Abschluss der Verarbeitung einen 5xx-Fehler oder einen 404 zurückgibt. In diesem Fall gibt FineParser Ihr fertiges Ergebnis frei, anstatt es zurückzuhalten. Eine Zeitüberschreitung oder ein Zertifikatsfehler blockiert das Ergebnis dagegen, weshalb dieser Zähler nicht abbilden kann, dass jemand die Bezahlung umgeht. Ein Wert über null bedeutet, dass der Lizenzanbieter einen schlechten Tag hatte – nicht Sie.

<h2 id="known-limitations">
  Bekannte Einschränkungen
</h2>

Wird ein Container innerhalb von etwa einer Minute nach der Verarbeitung eines Jobs gestoppt, gehen die Telemetriedaten dieses Jobs verloren, da der Exporter beim Herunterfahren nicht auf die abschließende HTTP-Antwort wartet. Lang laufende Container übermitteln sämtliche Daten. Die Lizenzerfassung ist davon nicht betroffen und bleibt der maßgebliche Abrechnungsdatensatz. Ein schnelles Stoppen führt daher lediglich zu einer geringfügig zu niedrigen Zählung in den Nutzungs-Dashboards von ABBYY.

<h2 id="network-requirements">
  Netzwerkanforderungen
</h2>

Der Container muss die Lizenzierungsinfrastruktur von ABBYY jederzeit erreichen können. Erlauben Sie in Ihrer Firewall bzw. Ihrem Egress-Proxy ausgehenden Datenverkehr zu beiden der folgenden Bereiche:

| Protokoll | Adressbereich        |
| --------- | -------------------- |
| IPv4      | `185.146.155.0/24`   |
| IPv6      | `2620:122:f003::/48` |

<Warning>
  Wenn FineParser diese Adressen nicht erreichen kann, werden keine Dokumente geparst. Anfragen an `/parse` schlagen fehl, bis die Verbindung wiederhergestellt ist. Für Umgebungen ohne ausgehende Verbindung siehe [FineParser Enterprise](/de/fine-parser/reference/enterprise).
</Warning>

Über diese Verbindung werden ausschließlich Lizenzvalidierung und Telemetriedaten übertragen – niemals Dokumentinhalte.
