Statistics

The statistics interface allows the retrieval of live statistics, statistical history and statistical rates for the FogLAMP device.

FogLAMP records a number of statistics values, some with fixed names and other that reflect the name of a service or an asset. The statistics counters with fixed names are given below.

Key

Description

BUFFERED

Readings currently in the FogLAMP buffer

DISCARDED

Readings discarded by the South Service before being placed in the buffer. This may be due to an error in the readings themselves.

PURGED

Readings removed from the buffer by the purge process

READINGS

Readings received by FogLAMP

UNSENT

Readings filtered out in the send process

UNSNPURGED

Readings that were purged from the buffer before being sent

In addition to these fixed names there will be;

  • One statistic per north service or task that is named the same as the service or task name. This will count the number of readings sent out on that service.

  • One statistic per asset that is named the same as the asset. This will be the number of readings that have been ingested for that asset.

  • One statistics per south service, that is named with the service name and -Ingest appended. This is the count of readings read in for that service.

GET statistics

GET /foglamp/statistics - return a general set of statistics

Response Payload

The response payload is a JSON document with statistical information (all numerical), these statistics are absolute counts since FogLAMP started.

Example

$ curl -s http://localhost:8081/foglamp/statistics
[ {
    "key": "BUFFERED",
    "description": "Readings currently in the FogLAMP buffer",
    "value": 0
  },
...
  {
    "key": "UNSNPURGED",
    "description": "Readings that were purged from the buffer before being sent",
    "value": 0
  },
... ]
$

GET statistics/history

GET /foglamp/statistics/history - return a historical set of statistics. This interface is normally used to check if a set of sensors or devices are sending data to FogLAMP, by comparing the recent statistics and the number of readings received for an asset.

Request Parameters

  • limit - limit the result set to the N most recent entries.

Response Payload

A JSON document containing an array of statistical information, these statistics are delta counts since the previous entry in the array. The time interval between values is a constant defined that runs the gathering process which populates the history statistics in the storage layer.

Key

Description

interval

The interval in seconds between successive statistics values

statistics[].BUFFERED

Readings currently in the FogLAMP buffer

statistics[].DISCARDED

Readings discarded by the South Service before being placed in the buffer. This may be due to an error in the readings themselves.

statistics[].PURGED

Readings removed from the buffer by the purge process

statistics[].READINGS

Readings received by FogLAMP

statistics[].*NORTH_TASK_NAME*

The number of readings sent to the upstream system by the plugin with the north instance name

statistics[].UNSENT

Readings filtered out in the send process

statistics[].UNSNPURGED

Readings that were purged from the buffer before being sent

statistics[].*ASSET-CODE*

The number of readings received by FogLAMP since startup with name asset-code

Example

$ curl -s http://localhost:8081/foglamp/statistics/history?limit=2
{
  "interval": 15,
  "statistics": [
    {
      "history_ts": "2020-06-01 11:21:04.357",
      "READINGS": 0,
      "BUFFERED": 0,
      "UNSENT": 0,
      "PURGED": 0,
      "UNSNPURGED": 0,
      "DISCARDED": 0,
      "Readings Sent": 0
    },
    {
      "history_ts": "2020-06-01 11:20:48.740",
      "READINGS": 0,
      "BUFFERED": 0,
      "UNSENT": 0,
      "PURGED": 0,
      "UNSNPURGED": 0,
      "DISCARDED": 0,
      "Readings Sent": 0
    }
  ]
}
$

GET statistics/rate

GET /foglamp/statistics/rate - return a set of rates for a set of statistics. This interface returns the rate of a statistic value in counts per minute over a specified set of averages. It is passed two parameters, a comma separated list of intervals in minutes and a comma separated list of statistics.

Request Parameters

  • statistics - a comma separated list of statistics keys.

  • periods - a comma separated list of time periods in minutes.

The corresponding rate that will be returned for a given value X is the counts per minute over the previous X minutes.

Example

$ curl -sX GET http://localhost:8081/foglamp/statistics/rate?statistics=READINGS,Readings%20Sent\&periods=1,5,15,30,60

 {
   "rates": {
     "READINGS": {
       "1": 2561.0,
       "5": 512.2,
       "15": 170.73333333333332,
       "30": 85.36666666666666,
       "60": 42.68333333333333
     },
     "Readings Sent": {
       "1": 2225.0,
       "5": 445.0,
       "15": 148.33333333333334,
       "30": 74.16666666666667,
       "60": 37.083333333333336
     }
   }
 }