Heim >Backend-Entwicklung >Golang >Die Konfigurations-TOML-Datei konnte nicht abgerufen werden, um Informationen in das Telegraf-Eingabe-Plugin zu laden

Die Konfigurations-TOML-Datei konnte nicht abgerufen werden, um Informationen in das Telegraf-Eingabe-Plugin zu laden

WBOY
WBOYnach vorne
2024-02-08 21:10:191186Durchsuche

无法获取配置 toml 文件以将信息加载到 telegraf 输入插件

Der PHP-Editor Xiaoxin stellt Ihnen heute vor, wie Sie das Problem lösen können, dass Sie die Konfigurations-Toml-Datei nicht abrufen können, um Informationen in das Telegraf-Eingabe-Plug-In zu laden. Bei Verwendung von Telegraf zur Datenerfassung kann es vorkommen, dass die Konfigurationsdatei nicht gelesen werden kann, was dazu führt, dass die Informationen nicht korrekt geladen werden können. Dieses Problem kann durch falsche Dateipfade, Berechtigungsprobleme oder Fehler im Konfigurationsdateiformat verursacht werden. Im Folgenden werden wir dieses Problem Schritt für Schritt lösen, um sicherzustellen, dass das Telegraf-Eingabe-Plug-in die Informationen in der Konfigurationsdatei normal laden kann.

Frageninhalt


Ich habe ein Eingabe-Plugin erstellt, das zwei Parameter enthält, die aus einer Konfigurationsdatei stammen, wie in der Struktur angegeben. Aus einem unbekannten Grund lässt sich das Plugin nicht ausführen:

Struktur:

type plugin struct {
    address       string `toml:"address"`
    lines_to_read string `toml:"lines_to_read"`
}

Dies ist der Eingabe-Plugin-Abschnitt der Konfigurations-TOML-Datei plugin.conf:

[[inputs.plugin]]
  address = "the/filepath.txt"
  lines_to_read = "20"

Jedes Mal, wenn ich eine Go-Datei ändere, führe ich make für die Datei aus und führe dann Folgendes aus:

./telegraf -config plugin.conf -test

Ich erhalte diese Fehlermeldung:

E! error loading config file plugin.conf: plugin inputs.plugin: line 1156: configuration specified the fields ["lines_to_read"], but they weren't used

Das Laden der Adresse ist kein Problem, aber der Wert „lines_to_read“ löst immer wieder diesen Fehler aus. Weißt du was passiert ist?

Ich habe versucht, „lines_to_read“ zu entfernen, hat gut funktioniert. Versuchen Sie, den Unterstrich zu entfernen. Stimmt so, danke. Versuchen Sie erneut, make auszuführen, und prüfen Sie, ob Fehler vorliegen. Sorgen Sie dafür, dass es gut läuft.


Lösung


telegraf 使用包 github.com/influxdata/toml zum Unmarshalieren von Toml-Daten. Dieses Paket erfordert, dass Strukturfelder für die Zuordnung exportiert werden müssen (siehe https://www.php.cn/link/520bae6649b42ff5a3c8c58b7fcfc5a9).

Versuchen Sie, das Feld zu exportieren, indem Sie es von

: lines_to_read 重命名为 linestoread ändern

type Plugin struct {
     Address       string `toml:"address"`
-    lines_to_read string `toml:"lines_to_read"`
+    LinesToRead   string `toml:"lines_to_read"`
}

Das obige ist der detaillierte Inhalt vonDie Konfigurations-TOML-Datei konnte nicht abgerufen werden, um Informationen in das Telegraf-Eingabe-Plugin zu laden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen