Skip to content

Simple PowerShell module to send events and metrics to DataDog via DogStatsD

License

Notifications You must be signed in to change notification settings

murati-hu/DogStatsD

Repository files navigation

DogStatsD PowerShell module

Build status

DogStatsD module provides a simple way to send events and metrics or other messages to DataDog from PowerShell via DogStatsD UDP protocol.

Installation

DogStatsD is available via PowerShellGallery, so you can simply install it with the following command:

Install-Module DogStatsD

Usage and some example

Import-Module DogStatsD

# Send Datadog Info Events
Send-DataDogEvent -Title "Test Event" -Text 'This is a detail text for a info event'

# Send Datadog Error Events
Send-DataDogEvent -Title "Failure Event" -Text 'Error details can come here' -AlertType error

# Send a Histogram metric for an example command duration
Send-DataDogMetric -Type Histogram -Name 'command.duration' -Value 12 -Tag @("command:my_command_name")

# Send a Gauge metric with value from variable to a given host and port
Send-DataDogMetric -Type Gauge -Name 'random.value' -Value $randomvalue -ComputerName 192.168.0.1 -Port 8125

# Send lots of Counter metric values via the pipeline
1..20000 | Send-DataDogMetric -Type Counter -Name 'incrementing.value' -Value { $_ }

# Use the output of another command to provide values for a Gauge metric
Get-AppStatistics | Send-DataDogMetric -Type Gauge -Name 'appco.active_users' -Value { $_.ActiveUsers }

# Use input objects to generate tags and values for a Counter metric
Get-Process |
    Send-DataDogMetric -Name 'process.handles' -Type Counter -Value { $_.Handles } -Tag { @("process:$($_.ProcessName)","pid:$($_.Id)") }

Documentation

Cmdlets and functions for DogStatsD have their own help PowerShell help, which you can read with help <cmdlet-name>.

Versioning

DogStatsD aims to adhere to Semantic Versioning 2.0.0.

Issues

In case of any issues, raise an issue ticket in this repository and/or feel free to contribute to this project if you have a possible fix for it.

Development

Pull requests are very welcome! Make sure your patches are well tested. Ideally create a topic branch for every separate change you make. For example:

  1. Fork the repo
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Authors

Created and maintained by Akos Murati (akos@murati.hu)

License

Apache License, Version 2.0 (see LICENSE)