ekg-elastic-0.2.2.0: Push metrics to elastic

Safe HaskellNone
LanguageHaskell2010

System.Remote.Monitoring.Elastic

Contents

Description

This module lets you periodically flush metrics to a elastic backend. Example usage:

main = do
    store <- newStore
    forkElastic defaultElasticOptions store

You probably want to include some of the predefined metrics defined in the ekg-core package, by calling e.g. the registerGcStats function defined in that package.

Synopsis

The elastic syncer

data Elastic Source #

A handle that can be used to control the elastic sync thread. Created by forkElastic.

elasticThreadId :: Elastic -> ThreadId Source #

The thread ID of the elastic sync thread. You can stop the sync by killing this thread (i.e. by throwing it an asynchronous exception.)

forkElastic Source #

Arguments

:: ElasticOptions

Options

-> Store

Metric store

-> IO Elastic

Elastic sync handle

Create a thread that flushes the metrics in the store to elastic.

Elastic options

data ElasticOptions Source #

Options to control how to connect to the elastic server and how often to flush metrics. The flush interval should be shorter than the flush interval elastic itself uses to flush data to its backends.

Constructors

ElasticOptions 

Fields

  • _host :: !Text

    Server hostname or IP address

  • _port :: !Int

    Server port

  • _indexBase :: !Text

    The elastic index to insert into

  • _indexByDate :: !Bool

    Append "-YYYY.MM.DD" onto index?

  • _flushInterval :: !Int

    Data push interval, in ms.

  • _debug :: !Bool

    Print debug output to stderr.

  • _prefix :: !Text

    Prefix to add to all metric names.

  • _suffix :: !Text

    Suffix to add to all metric names. This is particularly useful for sending per host stats by settings this value to: takeWhile (/= '.') <$> getHostName, using getHostName from the Network.BSD module in the network package.

  • _tags :: ![Text]

    Extra tags to add to events

defaultElasticOptions :: ElasticOptions Source #

Defaults:

  • host = "127.0.0.1"
  • port = 8125
  • indexBase = metricbeats
  • indexByDate = True
  • flushInterval = 1000
  • debug = False