Naar hoofdinhoud gaan
De instrumentatie van AppSignal maakt events aan voor stukken code die geïnstrumenteerd zijn. Deze events worden gebruikt om de uitvoeringsduur van de code en de Garbage Collection van afzonderlijke libraries en codeblokken te berekenen. Met instrumentatie kan AppSignal probleemgebieden in code detecteren. Hierdoor wordt het mogelijk om te zien of de databasequery’s van een applicatie traag zijn of dat één enkele API-aanroep de grootste vertraging in een request veroorzaakt. Om code nauwkeurig te instrumenteren volgt elke eventnaam een zeer specifieke naamgevingsmethode. Het kiezen van een goede naam kan veel helpen bij hoe AppSignal de binnenkomende data verwerkt en weergeeft. Eventnamen kiezen kan lastig zijn, maar hopelijk helpt deze korte uitleg over hoe een eventnaam wordt gebruikt u bij het kiezen van een goede. Voor meer informatie over instrumentatie leest u onze handleidingen over aangepaste instrumentatie:

Eventgroepen

Elk event dat door de AppSignal-instrumentatie wordt aangemaakt, heeft een naam. In deze naam is ook de bovenliggende groep van een event aanwezig. Deze groepsnaam stelt AppSignal in staat om events van databasequery’s en view-rendering te groeperen. Met deze groepering kunnen we overzichten maken die uitvoeringstijden per groep en per afzonderlijk event tonen. Onze Rails-integratie maakt bijvoorbeeld deze groepen aan: active_record, action_view, action_controller, enz.

Eventnaamgeving

Een eventnaam is een string die bestaat uit alfanumerieke tekens, underscores en punten. Spaties en streepjes worden niet geaccepteerd. Denk aan deze regex, ([a-zA-Z0-9_.]+), als de eventnaam wordt geaccepteerd door deze regex, dan wordt hij geaccepteerd. Laten we beginnen met een eenvoudige eventnaam.
Shell
sql.active_record
^   ^
|   second part (group)
first part (action)
De action van een eventnaam is alles tot aan de laatste punt . in een sleutel. De groep is alles na deze punt. De groep van een event is de codelibrary waartoe het behoort of het soort action dat het is, zoals een databasequery of een HTTP-request. Het werkt ook met meerdere punten in een sleutel.
Shell
fetch.partition3.database
^                ^
|                second part (group)
first part (action)
We gebruiken dit laatste-naamgevingsschema zelf voor de Ruby method-instrumentatie. Wanneer een naam met slechts één onderdeel wordt aangetroffen, wordt het event automatisch gegroepeerd onder de groep other.

Voorbeelden

Enkele voorbeelden van sleutels die door AppSignal-integraties worden gebruikt:
  • ActiveRecord: sql.active_record
  • Redis: query.redis
  • Elasticsearch: search.elasticsearch
  • ActionView: render_template.action_view en render_partial.action_view
  • Ruby’s Net::HTTP: request.net_http
  • Sidekiq: perform_job.sidekiq
  • Ruby method-instrumentatie:
    • method_name.ClassName.other, en;
    • method_name.class_method.NestedClassName.ParentModule.other