Unlike tcollector, scollector is a single binary where all collectors are
compiled into scollector itself. scollector supports external collectors, but
your goal should be to use those temporarily until the go version is written or
the target system send data directly to OpenTSDB or Bosun. scollector has
native collectors for Linux, Darwin, and Windows and can pull data from other
systems such as AWS, SNMP, and vSphere.

Usage:

scollector [flag]

The flags are:

-h=""
OpenTSDB or Bosun host. Overrides Host in conf file.
-f=""
Only include collectors matching these comma separated terms. Prefix
with - to invert match and exclude collectors matching those terms. Use
*,-term,-anotherterm to include all collectors except excluded terms.
-b=0
OpenTSDB batch size. Default is 500.
-conf=""
Location of configuration file. Defaults to scollector.toml in directory of
the scollector executable.
-l
List available collectors (after Filter is applied).
-m
Disable sending of metadata.
-version
Prints the version and exits.

FullHost (boolean): enables full hostnames: doesn't truncate to first ".".

ColDir (string): is the external collectors directory.

Tags (table of strings): are added to every datapoint. If a collector specifies
the same tag key, this one will be overwritten. The host tag is not supported.

Hostname (string): overrides the system hostname.

DisableSelf (boolean): disables sending of scollector self metrics.

Freq (integer): is the default frequency in seconds for most collectors.

BatchSize (integer): is the number of metrics that will be sent in each batch.
Default is 500.

MaxQueueLen (integer): is the number of metrics keept internally.
Default is 200000.

UserAgentMessage (string): is an optional message that will be appended to the
User Agent when making HTTP requests. This can be used to add contact details
so external services are aware of who is making the requests.
Example: Scollector/0.6.0 (UserAgentMessage added here)

Filter (array of string): Only include collectors matching these terms. Prefix
with - to invert match and exclude collectors matching those terms. Use
*,-term,-anotherterm to include all collectors except excluded terms.

Once the reports are going into the S3, bucket, the Bucket Name and the Prefix Path that
you entered during the report setup need to be entered below. Do not enter a blank bucket
path as this is not supported.

Reports that are over a certain number of days old are purged by scollector. Set the key
BillingPurgeDays to 0 to disable purging of old reports (not that this may increase your S3
usage costs as all reports are processed each time the collector runs).

Do not populate the Billing keys if you do not wish to load billing data into OpenTSDB or
Bosun.

Only products whose name matches the BillingProductCodesRegex key will have their billing
data sent to OpenTSDB or Bosun.

EANumber is your Enterprise Agreement number. You can find this in your Enterprise Agreement portal.

APIKey is the API key as provided by the Azure EA Portal. To generate your API key for this collector,
you will need to log into your Azure Enterprise Agreement portal (ea.azure.com), click the
"Download Usage" link, then choose "API Key" on the download page. You can then generate your API
key there. Keys are valid 6 months, so you will require some maintenance of this collector twice a year.

LogBillingDetails tells scollector to add the following tags to your metrics:

- costcenter
- accountname
- subscription

LogResourceDetails tell scollector to add the following tags to your metrics:

- resoucegroup
- resourcelocation

LogExtraTags tells scollector to take resource tags and add them to your metrics. Careful: this will
add all tags as they exist in Azure, so you may end up with a large number of distinct tags if you
are not careful. It will not process any tags that begin with "hidden".

If you are a heavy Azure EA user, then these additional tags may be useful for breaking down costs.

HTTPUnit (array of table, keys are TOML, Hiera): httpunit TOML and Hiera
files to read and monitor. See https://github.com/StackExchange/httpunit
for documentation about the toml file. TOML and Hiera may both be specified,
or just one. Freq is collector frequency as a duration string (default 5m).

Cadvisor: Cadvisor endpoints to poll.
Cadvisor collects system statistics about running containers.
See https://github.com/google/cadvisor/ for documentation about configuring
cadvisor. You can enable per cpu usage metric reporting optionally, and
optionally use IsRemote to disable block device lookups.

ExtraHop (array of table): ExtraHop hosts to poll. The two filter options specify how
scollector should filter out traffic from being submitted. The valid options are:

- namedprotocols (Only protocols that have an explicit name are submitted. The rest of the
traffic will be pushed into proto=unnamed. So any protocol that begins with
"tcp", "udp" or "SSL" will not be submitted (with the exception of SSL443).
- toppercent (The top n% of traffic by volume will be submitted. The rest of the traffic
will be pushed into proto=otherproto)
- none (All protocols of any size will be submitted)

FilterPercent applies when the FilterBy option is set to "toppercent". Only protocols that account
for this much traffic will be logged. For example, if this is set to 90, then if the protocol
accounts for less than 10% of the traffic, it will be dropped. This is OK if your traffic is
heavilly dominated by asmall set of protocols, but if you have a fairly even spread of protocols
then this filtering loses its usefulness.

AdditionalMetrics is formatted as such: [object_type].[object_id].[metric_category].[metric_spec_name]

- object_type: is one of: "network", "device", "application", "vlan", "device_group", "activity_group"
- object_id: can be found by querying the ExtraHop API (through the API Explorer) under the endpoint
for the object type. For example, for "application", you would query the "/applications/"
endpoint and locate the ID of the application you want to query.
- metric_category: can be found in the Metric Catalogue for the metric you are wanting to query. e.g. for
custom metrics, this is always "custom_detail"
- metric_spec_name: can be found in the Metric Catalogue for the metric you are wanting to query. e.g. for
custom metrics, this is name you have specified in metricAddDetailCount() function in
a trigger.

For these additional metrics, it is expected that the key for the metric is in a keyvalue, comma seperated pair.
This key will be converted into an OpenTSDB tagset. For example, if you have a key of
"client=192.168.0.1,server=192.168.0.9,port=21441", this will be converted into an OpenTSDB tagset of the same
values.

CAUTION: Do not include unbounded values in your key if you can help it. Putting in something like client IP, or
source/destination port, which are out of your control and specified by people external to your network, could
end up putting millions of different keys into your Bosun instance - something you probably don't want.

CertificateSubjectMatch and CertificateActivityGroup are used for collecting SSL information from ExtraHop. The
key CertificateSubjectMatch is used to match against the certificate subject. If there is no match, we discard
the certificate record. This is important as certificate subjects are essentially unbound, as EH return all
certificates it sees, regardless of where they originated.

The key CertificateActivityGroup is the Activity Group you want to pass through to ExtraHop to pull the certificates
from. There is a group called "SSL Servers" which is most likely the group you want to use. You will need to discover
the group number for this group and put it in here.

LocalListener (string): local_listener will listen for HTTP request and forward
the request to the configured OpenTSDB host while adding defined tags to
metrics.

LocalListener = "localhost:4242"

TagOverride (array of tables, key are CollectorExpr, MatchedTags and Tags): if a collector
name matches CollectorExpr MatchedTags and Tags will be merged to all outgoing message
produced by the collector, in that order. MatchedTags will apply a regexp to the tag
defined by the key name and add tags based on the named match groups defined in the
regexp. After tags defined in Tags will be merged, defining a tag as empty string
will deletes it.

Oracles (array of table, keys are ClusterName, Instances): Oracle database
instances to poll. The Instances key is an array of table with keys
ConnectionString and Role, which are the same as using sqlplus.

By default Elastic nodes are auto-detected on localhost:9200, but if you have a
node running on another network interface, a non-standard port or even multiple
nodes running on the same host you can use the Elastic configuration: