Skip to content

ultraware/ElasticAPM4D

 
 

Repository files navigation

ElasticAPM4D

It´s an Agent for Elastic-APM in Delphi

Features

  • Background (on the fly) configuration fetcher from APM Server
    • recording
      • completely turn off any data capturing (but can be turned on again runtime)
    • transaction_sample_rate
      • record only a percentage of all http call's, e.g. 10%. Note: transaction's with an error are always stored (not discarded)
    • capture_headers
      • store http headers in transaction context or not
    • capture_body
      • store http body payload in transaction context or not
  • Background metrics retrieval (cpu and memory)
  • Background sending data to APM Server
  • Distributed tracing (see demo below: for one call, record all descendant call's acros different applications or services, even async processing)
  • Custom tags/labels (trace or filter multiple call's)
  • Error stack traces (enable "JCL" conditional define)
  • Low overhead

Demo

First start a local Kibana, Elastic and APM Server:

start.bat

Or

docker-compose up

Wait till it is completely started and open the localhost Kibana APM page:

http://localhost:5601/app/apm/

Start both the DemoClient and DemoServer:

  • /demo/DemoClient.dpr
  • /demo/DemoServer.dpr

And press the demo "Http calls to server" button in the client:

Demo client

You will see some test calls in the server:

Demo server

The complete trace in visible Kibana:

Demo trace

Custom tags or labels

You can filter on your own custom tags / labels, so you can find for example all call's with a specific order number:

labels.tag_id : 22222

Demo labels

On the fly configuration

All APM recording can be turned off during runtime, by changing the application settings in Kibana:

Demo settings

Restart the Demo client and server, or wait 1 minute (background config fetcher).

Alerting

Alerting can be configured via the Alerts menu:

Alerting

For example, send an e-mail when more than 0 errors have been occured:

Create alert

About

It´s an Agent for Elastic-APM in Delphi

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Pascal 100.0%