Skip to content
This repository has been archived by the owner on Nov 8, 2022. It is now read-only.

Add streaming documentation #1728

Merged
merged 2 commits into from
Sep 6, 2017

Conversation

rashmigottipati
Copy link
Contributor

Add streaming documentation that includes details on exemplary task manifest, configuration options.

@intelsdi-x/snap-maintainers


* collector: gathering metrics
* processor: transforming metrics
* publisher: publishing metrics
* streaming collector: streaming gathered metrics
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rashmigottipati, could you rephrase this one. I think a good idea is to highlight that
collector: gathering metrics in provided interval
streaming collector gathering metrics when they available

You can add here also a notice that Snap supports in collection both mechanism of gathering metrics - pull and push.

* Supports runtime configuration controlling event throughput
* Buffer configurations enable dispatching events after a given duration and/or when a given event count has been reached

Currently there are two plugins that support streaming - [snap relay] (https://github.com/intelsdi-x/snap-relay) and [snap-plugin-collector-rand-streaming] (https://github.com/intelsdi-x/snap-plugin-lib-go/tree/master/examples/snap-plugin-collector-rand-streaming).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2. Start the plugin using flags:
* Run snap-plugin-collector-rand-streaming plugin
```
go run main.go --stand-alone --max-collect-duration 10s --max-metrics-buffer 50
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you can skip go run main.go because there is Makefile and binary can be found in '/build'

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it will be better to base on snap-relay as example and show real use case

docs/TASKS.md Outdated
schedule:
type: "streaming"
```
For more details on streaming, visit [STREAMING.md](STREAMING.md)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you add a sentence that there is no interval and count - those params will be skipped if they are provided

@@ -33,3 +33,5 @@ For additional examples of using Snap, checkout the examples in these repositori
- [snap-plugin-publisher-influxdb](https://github.com/intelsdi-x/snap-plugin-publisher-influxdb)
- [snap-plugin-publisher-graphite](https://github.com/intelsdi-x/snap-plugin-publisher-graphite)
- [snap-plugin-publisher-file](https://github.com/intelsdi-x/snap-plugin-publisher-file)
- [snap-relay](https://github.com/intelsdi-x/snap-relay) (streaming collector plugin)
- [snap-plugin-collector-rand-streaming](https://github.com/intelsdi-x/snap-plugin-lib-go/blob/master/examples/snap-plugin-collector-rand-streaming) (streaming collector plugin)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file contains real plugins, not mocked - so please remove snap-plugin-collector-rand-streaming from the list

@@ -33,3 +33,5 @@ For additional examples of using Snap, checkout the examples in these repositori
- [snap-plugin-publisher-influxdb](https://github.com/intelsdi-x/snap-plugin-publisher-influxdb)
- [snap-plugin-publisher-graphite](https://github.com/intelsdi-x/snap-plugin-publisher-graphite)
- [snap-plugin-publisher-file](https://github.com/intelsdi-x/snap-plugin-publisher-file)
- [snap-relay](https://github.com/intelsdi-x/snap-relay) (streaming collector plugin)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in the end in brackets could you add sth like that:
(streaming collector plugin to retrieve data from collectd or statsd and include it into Snap workflow)

Copy link
Contributor

@kjlyon kjlyon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have a few suggested changes, otherwise looks good!

README.md Outdated
* **Collectors** - Collectors consume telemetry data. Collectors are plugins for leveraging existing telemetry solutions (Facter, CollectD, Ohai) as well as specific plugins for consuming Intel telemetry (Node, DCM, NIC, Disk) and can reach into new architectures through additional plugins (see [Plugin Authoring below](#author-a-plugin)). Telemetry data is organized into a dynamically generated catalog of available data points.
* **Processors** - Extensible workflow injection. Convert telemetry into another data model for consumption by existing systems. Allows encryption of all or part of the telemetry payload before publishing. Inject remote queries into workflow for tokens, filtering, or other external calls. Implement filtering at an agent level reducing injection load on telemetry consumer.
* **Publishers** - Store telemetry into a wide array of systems. Snap decouples the collection of telemetry from the implementation of where to send it. Snap comes with a large library of publisher plugins that allow exposure to telemetry analytics systems both custom and common. This flexibility allows Snap to be valuable to open source and commercial ecosystems alike by writing a publisher for their architectures.
* **Streaming Collectors** - Streaming collectors act just like collectors, but rather than waiting for a specified duration before sending the collected data, they send it immediatly over a grpc stream to snaptel. Check out [STREAMING.md](/docs/STREAMING.md) for more details on the differences between collectors and streaming collectors.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spelling fix: immediately

# Streaming


Uses grpc streams to allow the plugin to send data immediately or after a certain period of time instead of on an interval governed by Snap.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you edit this to start with, Streaming plugins use grpc streams to allow ...

Uses grpc streams to allow the plugin to send data immediately or after a certain period of time instead of on an interval governed by Snap.
Streaming by snap enables -
* Improved performance by enabling event based data flows
* Supports runtime configuration controlling event throughput
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you get rid of Supports and start the sentence with Runtime configuration to control event throughput

Streaming by snap enables -
* Improved performance by enabling event based data flows
* Supports runtime configuration controlling event throughput
* Buffer configurations enable dispatching events after a given duration and/or when a given event count has been reached
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change enable dispatching to which dispatch

@rashmigottipati rashmigottipati force-pushed the add-streaming-doc branch 2 times, most recently from 7484652 to b22e2aa Compare September 5, 2017 23:59
@IzabellaRaulin IzabellaRaulin merged commit c78db8d into intelsdi-x:master Sep 6, 2017
# for free to subscribe to this conversation on GitHub. Already have an account? #.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants