2016-12-31 1 views
0

Printemps-Boot regex utilisant a une métrique ressembler àclés de champ de requête dans Springboot et Influxdb

metrics_counter.status.200.hello      20 
metrics_counter.status.200.jolokia.star-star   1 
metrics_counter.status.200.metrics      2 
metrics_counter.status.200.star-star.favicon.ico  4 
metrics_counter.status.304.star-star     3 
metrics_counter.status.404.star-star     1 

il est dynamique par url; pour cet exemple/bonjour avoir le statut http 200 pour 20 fois.

dans influxdb les champs ressemblent à ce

> show field keys 
name: jolokia 
fieldKey            fieldType 
--------            --------- 
metrics_counter.status.200.jolokia.star-star   float 
metrics_counter.status.200.metrics      float 
metrics_counter.status.200.persons      float 
metrics_counter.status.200.star-star     float 
metrics_counter.status.200.star-star.favicon.ico  float 
metrics_counter.status.304.star-star     float 
metrics_counter.status.404.star-star     float 

si je fais une recherche par expression régulière, le résultat est

> SELECT mean(/status.200.*/) FROM jolokia 
name: jolokia 
time mean_metrics_counter.status.200.hello mean_metrics_counter.status.200.jolokia.star-star  mean_metrics_counter.status.200.metrics mean_metrics_counter.status.200.persons mean_metrics_counter.status.200.star-star  mean_metrics_counter.status.200.star-star.favicon.ico 
---- ------------------------------------- -------------------------------------------------  --------------------------------------- --------------------------------------- -----------------------------------------  ----------------------------------------------------- 
0  3.8686440677966103      112.582995951417          8.935643564356436      651.429718875502      1            7.7923728813559325 

comment puis-je résumer tout état de http comme

200 27 
304 3 
404 1 

par requête de clés de champ dynamique?

+0

toute suggestion? – tobato

Répondre

0

Vous devrez modifier légèrement votre schéma, mais cela devrait être possible.

Au lieu d'insérer des données qui ressemble format graphite

jolokia metrics_counter.status.200.jolokia.star-star=100 <timestamp> 

Utiliser les tags

jolokia,type=metrics_counter,status=200 star-star=100 <timestamp> 

En fait, je recommande vraiment que vous structurez vos données comme si

metrics_counter,status=200,app=jolokia star-star=100 
metrics_counter,status=200,app=jolokia star-star.favicon=100 
metrics_counter,status=304,app=jolokia star-star=100 
metrics_counter,status=400,app=jolokia star-star.favicon=100 

Ensuite, vous pouvez émettre une requête comme

SELECT mean(*) FROM metrics_counter GROUP BY status 
+0

merci! Je vais essayer! – tobato