• Stars
    star
    144
  • Rank 255,590 (Top 6 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created almost 9 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

SignalFx integrations metadata

ℹ️  SignalFx was acquired by Splunk in October 2019. See Splunk SignalFx for more information.

SignalFx Integrations

Each directory in this repository specifies a different integration with Splunk Infrastructure Monitoring. At a minimum, each directory must have the files README.md and meta.yaml. If the integration is associated with a fixed set of metrics, add the file metrics.yaml. The following sections describe these files in more detail.

If you add a new integration, in meta.yaml set useLegacyBuild: false. Never use the legacy build for new integrations.

Writing YAML multi-line text

By default, YAML text appears on a single line. Consider the following text:

description: While you may see this metric in your organization, it is for Infrastructure Monitoring internal use only.

The YAML processor displays the line as is, with a newline (\n) after the word "only".

To control wrapping or to use Markdown syntax in YAML text, add one of the following characters after the YAML field name and colon delimiter. For example, use the delimiter for a multi-line description:

description: >
    While you may see this metric in your organization,
    it is for Infrastructure Monitoring internal use only.
  • > - For a block of text, this character strips out line breaks within the block and adds a single break at the end of the block.
  • | - For a block of text, this character preserves line breaks and implements Markdown.
  • Use >- or │- if you don't want a blank line after the text block.

For more information, do an Internet search for "YAML multi-line".

Meta.yaml

Each integration directory must have the file meta.yaml, which provides basic metadata for the integration. Use the following fields:

field name description
display_name name that will display in the integration tile
description short description of integration
project_url URL of 'metadata' directory. For example, (https://github.com/signalfx/integrations/tree/master/<integration-foo>)
code URL of code repository
featured flag 'true' to put integration in "Top Integrations" section but 'false' otherwise
logo_large URL of 300x300 pixel logo image
logo_small URL of 150x150 pixel logo image
feature optional line to specify the feature associated with the integration
useLegacyBuild If set to false, the Jinja (new) build templating system will be used

Example 1:

display_name: "AppDynamics Metrics Integration"
description: "AppDynamics metrics integration"
project_url: "https://github.com/signalfx/integrations/tree/master/appdynamics"
code: "https://github.com/signalfx/appd-integration"
featured: false
logo_large: "/images/repos/appdynamics/img/integrations_appdynamics%402x.png"
logo_small: "/images/repos/appdynamics/img/integrations_appdynamics.png"
feature: "<feature_name>"

Example 2:

browse_categories:
- Database
code: https://aws.amazon.com/rds/
data_signature: namespace:"AWS/RDS"
description: Monitor Amazon Relational Database Service (RDS) using SignalFx and AWS CloudWatch.
display_name: Amazon RDS
featured: false
in_app_categories:
- AWSservicesMonitored
logo_large: integration_awsrds.png
logo_small: integration_awsrds.png
project_url: https://github.com/signalfx/integrations/tree/master/aws-rds
useLegacyBuild: true

metrics.yaml

To help users make sense of incoming data, add or edit metrics.yaml to describe each metric and dimension that the integration emits, including the following:

  • Metric name: For example, sf.org.limit.hosts
  • Type: "counter", "gauge", or "cumulative_counter". For example, type: gauge
  • Description of what it measures: For example,
  description: |
    Your contract specifies this limit for the number of MTS you can create per
    per minute. If you exceed this rate, Infrastructure Monitoring stops creating MTS.

Sample dashboard(s)

To help users start with your integration, include a dashboard that users can import into their monitoring solution. Infrastructure Monitoring provides extended trial accounts for plugin developers that you can use to develop your dashboard. Contact Infrastructure Monitoring to learn more.

New Template System

To help Infrastructure Monitoring teams and other contributors control the text generated from this repo, including text in the integration tiles in the user interface and text in the user documentation, the build system is based entirely on that is based entirely on Jinja templates.

To enable the new template functionality for your particular integration, set useLegacyBuild: false in your meta.yaml file.

The Jinja template for an integration is the file README.md.jinja in the integration directory. The build process uses only that file.

The build process deserializes all *.yaml files in the integration directory and makes them available to the template context as a variable. For example, metrics.yaml is available as metrics in the template.

Include the following line at the top of the file README.md.jinja:

{% import "macros.jinja" as macros %}

This macro statement imports the macro helpers defined in the Jinja system. To learn more about Jinja macros, see the Jinja documentation section Macros.

To apply a Jinja template to an existing integration:

  1. Create the file README.md.jinja in the integration directory. You can either create it from scratch or copy and rename a legacy README.md file.
  2. Ensure that README.md.jinja has the content that you want to describe, because it's the single source for integration tiles in the user interface and user documentation.
  3. Verify that README.md.jinja file starts with the line {% import macros.jinja as macros %}.
  4. In the file meta.yaml file for the integration, set useLegacyBuild: false so that the build process uses the Jinja template by default.
  5. Delete the file README.md if it exists.

If possible, include all steps of the template application process in a single commit or pull request to your development branch. If you have useLegacyBuild: true, the build process ignores README.md.jinja or generates unexpected results. Similarly, if you have README.md.jinja and README.md in the same directory, your pull requests might generate file conflicts, because the build process merges all *.md files in your directory.

Tile Tabs

To control tabs in the integration tiles in the user interface, use second-level headers (specified by "##" in the first two columns of the header text) in README.md.jinja. The build process interprets a second-level header as the title of a tab, and all the content between the header and the next second-level header (or end of file) is displayed in the tab.

You can use first-level headers ("#") for text you want to display in user documentation. Otherwise, text that's outside a second-level section in README.md.jinja doesn't display in the integration tiles in the user interface.

Differentiate between tile content and documentation content

To control where content appears, use Jinja conditional statements and the target macro variable. To build integration tiles for the user interface, use target: tile. To build user documentation, use target: docs.

Build scripts write the output for target: tile to the integrations repository, while build scripts for target: docs write output to the product-docs repository. For example, the "if" statements in the following example write their content to the integrations repository but not the product-docs repository.

Conditional statements must be paired. Close the if statement with an endif statement:

Conditional text example

{% if target ﹦﹦ "tile" -%}

### Built-in dashboards

* **Apache Web Servers**: Overview of data from all Apache webserver instances.

[<img src='./img/dashboard_apache_webservers.png' width=200px>](./img/dashboard_apache_webservers.png)

* **Apache Web Server**: Focus on a single Apache webserver instance.

[<img src='./img/dashboard_apache_webserver.png' width=200px>](./img/dashboard_apache_webserver.png)

{%- endif %}

Test Tiles locally

The integration tiles used in the user interface come from a Javascript module that uses the content in the integrations repository. To build the module, use the ./build script in the root of the repository, as follows:

  1. Verify that you have Python 3 installed on your machine.

  2. In your terminal application, navigate to the root of the integrations repository.

  3. Run the following command:

    pip3 install --user -r ./requirements.txt

  4. Run the following command:

    ./build

If the build completes successfully, it displays a command that you can run to serve the JS module and associated images using a local HTTP server.

You can then run the user interface with the following content in the local.config.js file in the root of the SignalView repository:

module.exports = {
    integrationsDocsUrl: "http://localhost:3005/"
}

Run your local SignalView instance to preview the latest build of this repository.

More Repositories

1

maestro-ng

Orchestration of Docker-based, multi-host environments
Python
682
star
2

splunk-otel-collector

Go
191
star
3

signalfx-agent

The SignalFx Smart Agent
Go
120
star
4

splunk-otel-collector-chart

Splunk OpenTelemetry Collector for Kubernetes
Smarty
119
star
5

gateway

A proxy to buffer and forward metrics, events, and traces.
Go
97
star
6

swagger-angular-client

AngularJS service for communicating with endpoints described by swagger.
JavaScript
78
star
7

docker-zookeeper

Docker image for ZooKeeper (Maestro orchestration)
Python
69
star
8

golib

Golib contains various useful golang libraries
Go
66
star
9

splunk-otel-java

Splunk Distribution of OpenTelemetry Java
Java
63
star
10

docker-collectd

Collectd within a Docker image
Shell
58
star
11

tracing-examples

Examples of using third-party tracers with SignalFx
PHP
53
star
12

splunk-otel-js-web

Splunk distribution of Open Telemetry for browser environment.
TypeScript
49
star
13

splunk-otel-go

Splunk Distribution of OpenTelemetry Go
Go
47
star
14

signalfx-python

Python client library and instrumentation bindings for SignalFx
Python
43
star
15

splunk-otel-python

Splunk distribution of OpenTelemetry Python
Python
39
star
16

signalfx-java

Java client libraries for SignalFx
Java
37
star
17

splunk-otel-android

Android RUM library and instrumentation
Java
37
star
18

swagger-cli-client

Generates a command-line interface for any Swagger Specification
JavaScript
36
star
19

swagger-client-generator

Automatically generate an api object from a given swagger 1.2 schema
JavaScript
35
star
20

signalflow-library

Modules and Examples of SignalFlow usage
Shell
32
star
21

signalfx-dotnet-tracing

Automatic instrumentations for popular .NET libraries and frameworks. (Deprecated)
C#
32
star
22

fetch-swagger-schema

Given a url to a swagger api-docs spec, loads it and all related resource declarations as one JSON object.
JavaScript
30
star
23

splunk-otel-ios

iOS RUM library and instrumentation
Swift
23
star
24

swagger-validate

Detailed validation of objects against a given swagger model
JavaScript
22
star
25

signalfx-nodejs-tracing

OpenTracing-compatible Auto-Instrumentor for Node.js
JavaScript
21
star
26

splunk-otel-js

Splunk Distribution of OpenTelemetry JavaScript
TypeScript
21
star
27

signalfx-nodejs

Node.js client library for SignalFx
JavaScript
21
star
28

signalfx-python-tracing

OpenTracing-compatible Auto-Instrumentor for Python
Python
20
star
29

apmworkshop

19
star
30

signalfx-php-tracing

OpenTracing-compatible Auto-Instrumentor for PHP (Deprecated)
PHP
18
star
31

splunk-otel-react-native

Java
17
star
32

signalfx-jumpstart

POC in a Box
HCL
17
star
33

swagger-ajax-client

Create XHR clients for Swagger API Specifications
JavaScript
16
star
34

terraform-signalfx-slx

Best practices SLI, SLO and error budget monitoring, visualization and more for organizations using SignalFx
HCL
16
star
35

lambda-python

SignalFx AWS Lambda Python Wrapper
Python
15
star
36

signalflow-cli

Python command-line client for SignalFx SignalFlow™ Analytics
Python
14
star
37

signalfx-go

Go client library and instrumentation bindings for SignalFx
Go
14
star
38

signalfx-go-tracing

Go
13
star
39

collectd-zookeeper

CollectD plugin for ZooKeeper metrics
Python
13
star
40

otelworkshop

Shell
13
star
41

swagger-node-client

Create clients for Swagger API Specifications.
JavaScript
10
star
42

lambda-nodejs

SignalFx AWS Lambda Node.js Wrapper
JavaScript
10
star
43

ruby-rails-instrumentation

OpenTracing instrumentation for Rails
Ruby
10
star
44

signalfx-k8s-metrics-adapter

Horizontal Pod Autoscaler custom/external metrics provider for Kubernetes that uses SignalFx as the backend
Go
10
star
45

splunk-otel-collector-operator

Kubernetes Operator for OpenTelemetry Collector
Go
10
star
46

python-celery

OpenTracing instrumentation for Celery
Python
9
star
47

splunk-forwarder

a custom search command to metricize Splunk logs
Python
9
star
48

signalfx-java-tracing

The SignalFx Java Agent
Java
9
star
49

lambda-layer-versions

8
star
50

app-dev-workshop

Files used for creation of workshop instances, useful tools and anything else!
8
star
51

grafana-signalfx-datasource

JavaScript
7
star
52

signalfx-istio-adapter

An Istio Mixer adapter for sending metrics and trace spans to SignalFx
Go
7
star
53

signalfx-collectd-plugin

SignalFx CollectD plugin
Python
7
star
54

splunk-otel-dotnet

Splunk Distribution of OpenTelemetry .NET
C#
7
star
55

enhanced-rds-monitoring

Lambda for enhanced AWS/RDS monitoring
Python
6
star
56

splunk-otel-collector-heroku

Shell
6
star
57

signalfx-ruby

Ruby client library for SignalFx
Ruby
6
star
58

collectd-build-ubuntu

Shell
5
star
59

splunk-otel-java-lambda

Splunk custom OTEL Java wrapper for AWS lambdas
Java
5
star
60

collectd-rabbitmq

collectd plugin for integration with rabbitmq
Python
5
star
61

splunk-otel-lambda

Splunk distribution of OpenTelemetry Lambda
Shell
5
star
62

s3-util

High-level S3 utilities
JavaScript
5
star
63

pyfilewatch

Watch files and directories in python. Also supports tailing and glob file patterns.
Python
4
star
64

terraform-workshop

Monitoring as code workshop
HCL
4
star
65

maestro-base

Base Docker image for Maestro-enabled components
Shell
4
star
66

signalfx-ruby-tracing

Automatic OpenTracing instrumentation for Ruby
Ruby
4
star
67

circleutil

Utility scripts for circleci
Go
4
star
68

kubectl-splunk

kubectl plugin for interacting with OpenTelemetry deployments
Go
4
star
69

collectd-jenkins

collectd based plugin for Jenkins
Python
3
star
70

aws-log-collector

AWS Lambda function which forwards AWS logs to Splunk Observability.
Python
3
star
71

kong-plugin-signalfx

Kong API Gateway metric aggregator for SignalFx
Lua
3
star
72

call-conduit

Programmatically call phabricator/conduit
JavaScript
3
star
73

signalfx-nodejs-collect

JavaScript
3
star
74

splunk-otel-java-overhead-test

Test tools to help quantify the overhead of the Java instrumentation agents.
Java
3
star
75

gdi-specification

Splunk GDI specification for cross-repository compatibility
Makefile
3
star
76

signalflow-grammar

SignalFx SignalFlow language grammar
ANTLR
3
star
77

sapm-proto

SAPM ProtoBuf
Go
3
star
78

collectd-kong

CollectD plugin for Kong API Gateway
Python
3
star
79

ruby-sequel-instrumentation

Ruby
3
star
80

PerfCounterReporter

Windows service for reporting Windows Performance Counters to SignalFx
C#
3
star
81

alert-assessor

SignalFx Alert Evaluation Tool
Python
3
star
82

puppet_collectd

A Puppet module to install collectd, configure plugins and send metrics
Python
2
star
83

ansible-signalfx-agent

Install and Configure the SignalFx Smart Agent. (Partial mirror of https://github.com/signalfx/signalfx-agent. Do not edit manually.)
2
star
84

aws-cloudformation-templates

CloudFormation templates describing AWS resources to deploy in user's AWS account when setting up AWS integration
Makefile
2
star
85

victorops-field-scripts

Scripts created by the field team utilizing the VictorOps API
Python
2
star
86

collectd-example

Python
2
star
87

Metrics.NET.SignalFx

SignalFx Reporter for Metrics.NET
C#
2
star
88

splunk-otel-ios-crashreporting

Swift
2
star
89

collectd-openstack

CollectdD plugin to monitor OpenStack cloud infrastructure
Python
2
star
90

cadvisor-integration

The SignalFx Metric Data Collector for Kubernetes
Go
2
star
91

replay

Python
2
star
92

splunk-extension-wrapper

Splunk Lambda Extension for Metrics
Go
2
star
93

collectd-couchbase

CollectD plugin for Couchbase metrics
Python
2
star
94

collectd-spark

collectd plugin for monitoring apache spark
Python
2
star
95

catchpoint-integration

How to integrate SignalFx and Catchpoint systems with regards to Synthetic Monitoring and RUM.
2
star
96

opentracing-python-patches

Python
2
star
97

lambda-java

SignalFx AWS Lambda Java Wrapper
Java
2
star
98

lambda-csharp

SignalFx AWS Lambda C# Wrapper
C#
2
star
99

signalfx-cloudfoundry-bridge-boshrelease

A BOSH release of our Cloud Foundry Metric Bridge
Makefile
2
star
100

splunk-otel-ruby

Splunk Distribution of OpenTelemetry Ruby [Deprecated]
Ruby
2
star