Wie verwende ich regulären Ausdruck beim Abrufen von Daten aus Graphit?

8

Ich möchte Daten von verschiedenen Zählern aus Graphit in einer einzigen Anfrage abrufen: -

%Vor%

und so weiter .. 20 mehr.

Aber ich möchte nicht

holen %Vor%

in dieser Anfrage wie kann ich das tun?

Das habe ich versucht:

%Vor%

Er erhält JSON-Daten für 'modul_xyz_abc', aber das will ich nicht.

    
Sachin Singh 18.10.2013, 19:42
quelle

1 Antwort

17

Sie können keine regulären Ausdrücke per se verwenden, aber Sie können einige ähnliche (im Konzept und etwas im Format) Übereinstimmungstechniken verwenden, die in der Graphite Render URL API verfügbar sind. Es gibt einige Möglichkeiten, wie Sie innerhalb des "Buckets" eines Ziels (d. H. Zwischen den Punkten) "zusammenpassen" können.

Zielabgleich

Sternchen * passt zu

Der Stern kann verwendet werden, um ANY -zero oder mehr Zeichen zu entsprechen. Es kann verwendet werden, um den gesamten Bucket ( site.*.test ) oder den Bucket ( site.w*t.test ) zu ersetzen. Hier ist ein Beispiel:

%Vor%

Dies würde mit site.testing_server_2.requests_ failed .count, site.testing_server_2.requests_ Erfolg .count, site.testing_server_2.requests_ blah123 .count und so weiter.

Zeichenbereich [a-z0-9] stimmt mit

überein

Die Zeichenbereichsübereinstimmung wird für die Übereinstimmung mit einem einzelnen Zeichen ( site.w[0-9]t.test ) im Bucket des Ziels verwendet und als Bereich oder Liste angegeben. Zum Beispiel:

%Vor%

Dies würde auf site.testing_server_0.requests_failed.count, site.testing_server_1.requests_failed.count, site.testing_server_2.requests_failed.count usw. passen.

Werteliste (Gruppenerfassung) {blah, test, ...} match

Die Übereinstimmung der Werteliste kann verwendet werden, um alle Werte in der Werteliste im angegebenen Teil des Buckets des Ziels abzugleichen.

%Vor%

Dies würde zu site.testing_server_2.triggers_unknown.count, site.testing_server_2.requests_failed.count und site.testing_server_2.core_network_bad_soap.count passen. Aber nichts anderes, so dass site.testing_server_2.module_xyz_abc.count nicht übereinstimmen würde.

Antwort

Ohne all Ihre Bucket-Werte zu kennen, ist es schwierig, mit dem Ansatz operativ zu sein (vielleicht mit einer Kombination der passenden Optionen), daher empfehle ich, nur eine Wertelistenübereinstimmung zu wählen. Dies sollte Ihnen erlauben, alle Werte in einer - etwas langen - Anfrage zu bekommen. Zum Beispiel (und beachten Sie, dass Sie alle Ihre Werte einschließen müssen):

%Vor%

Weitere Informationen finden Sie unter Graphite Paths und Wildcards

    
Matt Self 21.10.2013, 23:55
quelle

Tags und Links