Emakin publishes the internal application performance metrics in JSON or text based format.

By default only web request metrics are collected and workflow metrics are disabled by configuration and can be enabled with set AppMetrics/Enabled flag to "true" value.

Emakin also supports the open metrics (Prometheus) based format and can be enabled by setting AppMetrics/Prometheus/Enabled flag to "true" value. When it is enabled default standard metrics endpoint uses the prometheus format. 

Text Format

Text based application metrics data can be accessed from "http://<servername>:7180/metrics-text" url.

Sample Output

# TIMESTAMP: 638002409628203389
# MEASUREMENT: [Application.HttpRequests] Active
# TAGS:
                 server = myserver1
                    app = AltiKare.Workflow.Agent
                    env = release
                  mtype = counter
                   unit = Active Requests
# FIELDS:
                  value = 0
--------------------------------------------------------------
# TIMESTAMP: 638002409628203389
# MEASUREMENT: [Application.HttpRequests] Errors
# TAGS:
       http_status_code = 404
                 server = myserver1
                    app = AltiKare.Workflow.Agent
                    env = release
                  mtype = counter
                   unit = err
# FIELDS:
                  value = 0
--------------------------------------------------------------
# TIMESTAMP: 638002409628203389
# MEASUREMENT: [Application.HttpRequests] Error Rate Per Endpoint And Status Code
# TAGS:
                  route = GET
       http_status_code = 404
                 server = myserver1
                    app = AltiKare.Workflow.Agent
                    env = release
                  mtype = meter
                   unit = req
              unit_rate = min
# FIELDS:
            count.meter = 2
                 rate1m = 0.000740604363080179
                 rate5m = 0.04730718912605739
                rate15m = 0.04122936760317311
              rate.mean = 0.0014098467582868478
--------------------------------------------------------------
# TIMESTAMP: 638002409628203389
# MEASUREMENT: [Application.HttpRequests] Transactions
# TAGS:
                 server = myserver1
                    app = AltiKare.Workflow.Agent
                    env = release
                  mtype = timer
                   unit = req
               unit_dur = ms
              unit_rate = min
# FIELDS:
            count.meter = 2
                 rate1m = 0.000740604363080179
                 rate5m = 0.04730718912605739
                rate15m = 0.04122936760317311
              rate.mean = 0.0006628238397434088
                samples = 1
                   last = 0.406919
             count.hist = 1
                    sum = 0.406919
                    min = 0.406919
                    max = 0.406919
                   mean = 0.406919
                 median = 0.406919
                 stddev = 0
                   p999 = 0.406919
                    p99 = 0.406919
                    p98 = 0.406919
                    p95 = 0.406919
                    p75 = 0.406919
--------------------------------------------------------------


JSON Format

JSON based application metrics data can be accessed from "http://<servername>:7180/metrics" url.

Sample Output

{
  "contexts": [
    {
      "context": "Application.HttpRequests",
      "counters": [
        {
          "count": 0,
          "items": [],
          "name": "Active|server:myserver1,app:AltiKare.Workflow.Agent,env:release",
          "tags": {
            "server": "myserver1",
            "app": "AltiKare.Workflow.Agent",
            "env": "release"
          },
          "unit": "Active Requests"
        },
        {
          "count": 0,
          "items": [],
          "name": "Errors|http_status_code:404,server:myserver1,app:AltiKare.Workflow.Agent,env:release",
          "tags": {
            "http_status_code": "404",
            "server": "myserver1",
            "app": "AltiKare.Workflow.Agent",
            "env": "release"
          },
          "unit": "err"
        }
      ],
      "meters": [
        {
          "count": 2,
          "fifteenMinuteRate": 0.024593548234881323,
          "fiveMinuteRate": 0.010040855039444218,
          "items": [],
          "meanRate": 0.0014021127455886738,
          "oneMinuteRate": 3.1900980491459724E-07,
          "rateUnit": "min",
          "name": "Error Rate Per Endpoint And Status Code|route:GET,http_status_code:404,server:myserver1,app:AltiKare.Workflow.Agent,env:release",
          "tags": {
            "route": "GET",
            "http_status_code": "404",
            "server": "myserver1",
            "app": "AltiKare.Workflow.Agent",
            "env": "release"
          },
          "unit": "req"
        },
      ],
      "timers": [
        {
          "activeSessions": 0,
          "count": 2,
          "durationUnit": "ms",
          "histogram": {
            "lastValue": 0.406919,
            "max": 0.406919,
            "mean": 0.406919,
            "median": 0.406919,
            "min": 0.406919,
            "percentile75": 0.406919,
            "percentile95": 0.406919,
            "percentile98": 0.406919,
            "percentile99": 0.406919,
            "percentile999": 0.406919,
            "sampleSize": 1,
            "stdDev": 0,
            "sum": 0.406919
          },
          "rate": {
            "fifteenMinuteRate": 0.024593548234881323,
            "fiveMinuteRate": 0.010040855039444218,
            "meanRate": 0.000661109402893143,
            "oneMinuteRate": 3.1900980491459724E-07
          },
          "rateUnit": "min",
          "name": "Transactions|server:myserver1,app:AltiKare.Workflow.Agent,env:release",
          "tags": {
            "server": "myserver1",
            "app": "AltiKare.Workflow.Agent",
            "env": "release"
          },
          "unit": "req"
        }
      ]
    },
  ],
  "timestamp": "2022-10-01T17:17:12.3156208Z"
}