prometheus-emcisilon-exporter

command module
v0.0.0-...-96257ef Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 25, 2019 License: MIT Imports: 11 Imported by: 0

README

Prometheus-emcisilon-exporter

Introduction

Prometheus-emcisilon-exporter is a golang prometheus exporter that facilities the monitoring of EMC Isilon cluster with prometheus. It uses the OneFS API to expose metrics and configuration items.

The prometheus-emcisilon-exporter and be build on any go compatibile system with the required dependencies.

Similar projects are e.g.:

Usage
Building the package

This exporter will run on any supported go platform. To build run: go build

Dependencies
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/common/log"
"gopkg.in/alecthomas/kingpin.v2"
"github.com/hpanike/goisilon"
Run

The build go binary can be executed directly on the command-line with the desired configration flags.

Make sure the password environment variable has been properly exported.

`./prometheus-emcisilon-exporter --isilon.cluster.fqdn= --isilon.cluster.port= --isilon.cluster.username= --isilon.cluster.password.env=<PASSWD_ENV>

Collectors can be enabled by using --collector.<name> or disabled with --no-collector.<name>

Configuration
System Flags
Program Flags Description Default Value Required
--isilon.cluster.fqdn The DNS FQDN for reaching the cluster. HTTPS is forced as auth is made with basic auth. "localhost" Yes
--isilon.cluster.port The port for the API on the Isilon cluster. 8080 Yes
--isilon.cluster.username The username for access the API Yes
--isilon.cluster.password.env The password environment variabled that contains the password. "ISILON_CLUSTER_PASSWORD" Yes
--isilon.cluster.site The site the cluster resides in. Added as a label. No
--web.listen-address The port that the exporter is bound to. ":9300" Yes
--web.telemtry-path HTTP path for access metrics. "/metrics" Yes
--log.level Log level of the exporter. "info" Yes
--log.format Sets log target and format "logger:stderr" Yes
Collector Flags
Flag Collector Description Default
--collector.capacity capacity Exposes system /ifs capacity information. enabled
--collector.cluster_health cluster_health Exposes cluster health information enabled
--collector.cluster_protocol cluster_protocol Exposes protocol statistics at the cluster level enabled
--collector.common_cifs cluster_protocol & node_protocol Enables the collection of cifs protocol statistics enabled
--collector.common_ftp cluster_protocol & node_protocol Enables the collection of ftp protocol statistics enabled
--collector.common_hdfs cluster_protocol & node_protocol Enables the collection of hdfs protocol statistics enabled
--collector.common_http cluster_protocol & node_protocol Enables the collection of http protocol statistics enabled
--collector.common_irp cluster_protocol & node_protocol Enables the collection of irp protocol statistics enabled
--collector.common_jobd cluster_protocol & node_protocol Enables the collection of jobd protocol statistics enabled
--collector.common_lsass_in cluster_protocol & node_protocol Enables the collection of lsass inbound protocol statistics enabled
--collector.common_lsass_out cluster_protocol & node_protocol Enables the collection of lsass outbound protocol statistics enabled
--collector.common_nfs cluster_protocol & node_protocol Enables the collection of nfs protocol statistics enabled
--collector.common_nfs3 cluster_protocol & node_protocol Enables the collection of nfs3 protocol statistics enabled
--collector.common_nfs4 cluster_protocol & node_protocol Enables the collection of nfs4 protocol statistics enabled
--collector.common_nlm cluster_protocol & node_protocol Enables the collection of nlm protocol statistics enabled
--collector.common_papi cluster_protocol & node_protocol Enables the collection of papi protocol statistics enabled
--collector.common_siq cluster_protocol & node_protocol Enables the collection of siq protocol statistics enabled
--collector.common_smb1 cluster_protocol & node_protocol Enables the collection of smb1 protocol statistics enabled
--collector.common_smb2 cluster_protocol & node_protocol Enables the collection of smb2 protocol statistics enabled
--collector.cpu cpu Enables the collection of CPU statistics enabled
--collector.disk disk Enables the collection of disk statistics
--collector.memory memory Enables the collection of memory statistics enabled
--collector.network network Enables the collection of network statistics enabled
--collector.nfs_exports nfs_exports Enables the collection of summary information about nfs exports enabled
--collector.node_health node_health Enables the collection of node health information enabled
--collector.node_partition node_partition Enables the collection of node partition information (, \var, \var\crash, etc.) enabled
--collector.node_protocol node_protocol Enables the collection of node level procotol statistics enabled
--collector.node_status node_status Enables the collection of node status information (Power supplies & batteries) enabled
--collector.quota quota Enables the collection of quota information (thresholds and status) disabled
--collector.quota.type quota Sets the type of quotas to be collected (directory, user, group, etc.) all
--collector.quota.exceeded quota Sets the quota collector to return only exceeded quotas disabled
--collector.quota_summary quota_summary Enables the collection of summary information about all quotas enabled
--collector.smb_shares smb_share Enables the colleciton of summary information about smb share.
--collector.snapshots snapshots Enables the collection of summary information about snapshots enabled
--collector.statfs statfs Enables the collection of statfs statistics about the general /ifs system enabled
--collector.storage_pools storage_pools Enables the collection of information about storage pools (virtual hot spare size, etc.) enabled
--collector.sync_iq sync_iq Enables the collection of sync iq policies enabled
Provided Metrics
# TYPE isilon_cluster_health gauge
 
# HELP isilon_cluster_onefs_version Current OneFS version. This returns a 1 always, the version is a label to the metric.
# TYPE isilon_cluster_onefs_version gauge
 
# HELP isilon_ifs_bytes_avail Current ifs filesystem capacity available in bytes.
# TYPE isilon_ifs_bytes_avail gauge
 
# HELP isilon_ifs_bytes_free Current ifs filesystem capacity free in bytes.
# TYPE isilon_ifs_bytes_free gauge
 
# HELP isilon_ifs_bytes_total Current ifs filesystem capacity total in bytes.
# TYPE isilon_ifs_bytes_total gauge
 
# HELP isilon_ifs_bytes_used Current ifs filesystem capacity used in bytes.
# TYPE isilon_ifs_bytes_used gauge
 
# HELP isilon_ifs_percent_avail Current ifs filesystem capacity available as a percentage from 0.0 - 1.0.
# TYPE isilon_ifs_percent_avail gauge
 
# HELP isilon_ifs_percent_free Current ifs filesystem capacity free as a percentage from 0.0 - 1.0.
# TYPE isilon_ifs_percent_free gauge
 
# HELP isilon_ifs_percent_used Current ifs filesystem capacity used in as a percentage from 0.0 - 1.0.
# TYPE isilon_ifs_percent_used gauge
 
# HELP isilon_nfs_export_total Total number of NFS exports on a cluster.
# TYPE isilon_nfs_export_total gauge
 
# HELP isilon_node_boottime Unix timestamp of when a load booted.
# TYPE isilon_node_boottime gauge
 
# HELP isilon_node_clientstats_active Total node protocol operation in rate.
# TYPE isilon_node_clientstats_active gauge
 
# HELP isilon_node_clientstats_connected Total node protocol operation in rate.
# TYPE isilon_node_clientstats_connected gauge
 
# HELP isilon_node_cpu_sys_avg Current cpu busy percentage for sys mode represented in 0.0-1.0.
# TYPE isilon_node_cpu_sys_avg gauge
 
# HELP isilon_node_cpu_user_avg Current cpu busy percentage for user mode represented in 0.0-1.0.
# TYPE isilon_node_cpu_user_avg gauge
 
# HELP isilon_node_disk_busy_all Current disk busy percentage represented in 0.0-1.0.
# TYPE isilon_node_disk_busy_all gauge
 
# HELP isilon_node_disk_count Number of disk per node as seen by the onefs system.
# TYPE isilon_node_disk_count gauge
 
# HELP isilon_node_disk_iosched_queued_all Current queue depth for IO sceduler.
# TYPE isilon_node_disk_iosched_queued_all gauge

# HELP isilon_node_disk_unhealthy_count Number of unhealthy disk per node as an int.
# TYPE isilon_node_disk_unhealthy_count gauge
 
# HELP isilon_node_disk_xfers_in_rate_all Current disk ingest transfer rate.
# TYPE isilon_node_disk_xfers_in_rate_all gauge
 
# HELP isilon_node_disk_xfers_out_rate_all Current disk egress transfer rate.
# TYPE isilon_node_disk_xfers_out_rate_all gauge
 
# HELP isilon_node_health Current health of a node from the view of the onefs cluster.
# TYPE isilon_node_health gauge
 
# HELP isilon_node_load_15min Current 15min node load.
# TYPE isilon_node_load_15min gauge
 
# HELP isilon_node_load_1min Current 1min node load.
# TYPE isilon_node_load_1min gauge
 
# HELP isilon_node_load_5min Current 5min node load.
# TYPE isilon_node_load_5min gauge
 
# HELP isilon_node_memory_cache RAM memory currently used for cache in bytes.
# TYPE isilon_node_memory_cache gauge
 
# HELP isilon_node_memory_free RAM memory currently free in bytes.
# TYPE isilon_node_memory_free gauge
 
# HELP isilon_node_memory_used RAM memory currently in use in bytes.
# TYPE isilon_node_memory_used gauge
 
# HELP isilon_node_net_ext_bytes_in_rate Current network bytes in rate from external interfaces.
# TYPE isilon_node_net_ext_bytes_in_rate gauge
 
# HELP isilon_node_net_ext_bytes_out_rate Current network bytes out rate from external interfaces.
# TYPE isilon_node_net_ext_bytes_out_rate gauge
 
# HELP isilon_node_partition_count Count of the total number of partitions on a node.
# TYPE isilon_node_partition_count gauge
 
# HELP isilon_node_partition_filenodes_free Number of filenodes free on a partition.
# TYPE isilon_node_partition_filenodes_free gauge
 
# HELP isilon_node_partition_filenodes_free_percent Percentage of filenodes free on a partition.
# TYPE isilon_node_partition_filenodes_free_percent gauge
 
# HELP isilon_node_partition_filenodes_total Total number of filenodes on a partition.
# TYPE isilon_node_partition_filenodes_total gauge
 
# HELP isilon_node_partition_used_space_percentage Percentage of space used on a partition.
# TYPE isilon_node_partition_used_space_percentage gauge
 
# HELP isilon_node_status_battery Status for batteries.
# TYPE isilon_node_status_battery gauge
 
# HELP isilon_node_status_power_supply Status for power supplies.
# TYPE isilon_node_status_power_supply gauge
 
# HELP isilon_node_uptime Current uptime of a node in seconds.
# TYPE isilon_node_uptime gauge
 
# HELP isilon_quota_api_collection_duration Returns the amount of time it took to collect an iteration of quotas from the api.
# TYPE isilon_quota_api_collection_duration gauge
 
# HELP isilon_quota_container 1 if quota is a container quota, 0 if not.
# TYPE isilon_quota_container gauge
 
# HELP isilon_quota_enforced 1 if quota is enforced, 2 if quota is an advisory quota.
# TYPE isilon_quota_enforced gauge
 
# HELP isilon_quota_include_snapshots 1 if quota includes snapshots in usage, 0 if not.
# TYPE isilon_quota_include_snapshots gauge
 
# HELP isilon_quota_summary_default_group_quotas_count Number of default group quotas.
# TYPE isilon_quota_summary_default_group_quotas_count gauge
 
# HELP isilon_quota_summary_default_user_quotas_count Number of default user quotas.
# TYPE isilon_quota_summary_default_user_quotas_count gauge
 
# HELP isilon_quota_summary_directory_quotas_count Number of directory quotas.
# TYPE isilon_quota_summary_directory_quotas_count gauge
 
# HELP isilon_quota_summary_group_quotas_count Number of group quotas.
# TYPE isilon_quota_summary_group_quotas_count gauge
 
# HELP isilon_quota_summary_linked_quotas_count Number of linked quotas.
# TYPE isilon_quota_summary_linked_quotas_count gauge
 
# HELP isilon_quota_summary_quotas_user Number of user quotas.
# TYPE isilon_quota_summary_quotas_user gauge
 
# HELP isilon_quota_summary_total_quotas_count Total number of quotas on a cluster.
# TYPE isilon_quota_summary_total_quotas_count gauge
 
# HELP isilon_quota_threshold_advisory Usage bytes at which notifications will be sent but writes will not be denied.
# TYPE isilon_quota_threshold_advisory gauge
 
# HELP isilon_quota_threshold_advisory_exceeded 1 if the advisory threshold has been hit.
# TYPE isilon_quota_threshold_advisory_exceeded gauge
 
# HELP isilon_quota_threshold_hard Usage bytes at which further writes will be denied.
# TYPE isilon_quota_threshold_hard gauge
 
# HELP isilon_quota_threshold_hard_exceeded True if the hard threshold has been hit.
# TYPE isilon_quota_threshold_hard_exceeded gauge
 
# HELP isilon_quota_threshold_soft Usage bytes at which notifications will be sent and soft grace time will be started.
# TYPE isilon_quota_threshold_soft gauge
 
# HELP isilon_quota_threshold_soft_exceeded 1 if the soft threshold has been hit.
# TYPE isilon_quota_threshold_soft_exceeded gauge
 
# HELP isilon_quota_threshold_soft_grace Time in seconds after which the soft threshold has been hit before writes will be denied.
# TYPE isilon_quota_threshold_soft_grace gauge
 
# HELP isilon_quota_usage_inodes Number of inodes (filesystem entities) used by governed data.
# TYPE isilon_quota_usage_inodes gauge
 
# HELP isilon_quota_usage_logical Apparent bytes used by governed data.
# TYPE isilon_quota_usage_logical gauge
 
# HELP isilon_quota_usage_physical Bytes used for governed data and filesystem overhead.
# TYPE isilon_quota_usage_physical gauge
 
# HELP isilon_scrape_collector_duration_seconds isilon_exporter: Duration of a collector scrape,
# TYPE isilon_scrape_collector_duration_seconds gauge
 
# HELP isilon_scrape_collector_success isilon_exporter: Whether a collector succeeded.
# TYPE isilon_scrape_collector_success gauge
  
# HELP isilon_smb_share_total Total number of SMB shares on a cluster.
# TYPE isilon_smb_share_total gauge
 
# HELP isilon_snapshots_15_day_count Number of snapshots older than 15 days.
# TYPE isilon_snapshots_15_day_count gauge
 
# HELP isilon_snapshots_30_day_count Number of snapshots older than 30 days
# TYPE isilon_snapshots_30_day_count gauge
 
# HELP isilon_snapshots_60_day_count Number of snapshots older than 60 days.
# TYPE isilon_snapshots_60_day_count gauge
 
# HELP isilon_snapshots_7_day_count Number of snapshots older than 7 days.
# TYPE isilon_snapshots_7_day_count gauge
 
# HELP isilon_snapshots_90_day_count Number of snapshots older than 90 days.
# TYPE isilon_snapshots_90_day_count gauge
 
# HELP isilon_snapshots_active_count Number of snapshots that are active on the system.
# TYPE isilon_snapshots_active_count gauge
 
# HELP isilon_snapshots_active_size Size in bytes of space occupied by active snapshots.
# TYPE isilon_snapshots_active_size gauge
 
# HELP isilon_snapshots_deleting_count Number of snapshots that are being deleted from the system.
# TYPE isilon_snapshots_deleting_count gauge
 
# HELP isilon_snapshots_deleting_size Size in bytes of space occupied by snapshots being deleted. 
# TYPE isilon_snapshots_deleting_size gauge
 
# HELP isilon_snapshots_total_count Total number of snapshots (both active and deleting) on a cluster.
# TYPE isilon_snapshots_total_count gauge
 
# HELP isilon_snapshots_total_size Size in bytes of space occupides by all snapshots.
# TYPE isilon_snapshots_total_size gauge
 
# HELP isilon_stafs_file_block_avail The filesystem fragment size.
# TYPE isilon_stafs_file_block_avail gauge
 
# HELP isilon_statfs_file_block_free The number of free blocks in the filesystem.
# TYPE isilon_statfs_file_block_free gauge
 
# HELP isilon_statfs_file_block_size The filesystem fragment size.
# TYPE isilon_statfs_file_block_size gauge
 
# HELP isilon_statfs_file_block_used The total number of data blocks in the filesystem.
# TYPE isilon_statfs_file_block_used gauge
 
# HELP isilon_statfs_file_io_size The optimal transfer block size.
# TYPE isilon_statfs_file_io_size gauge
 
# HELP isilon_statfs_file_name_max The maximum length of a file name.
# TYPE isilon_statfs_file_name_max gauge
 
# HELP isilon_statfs_file_node_free The number of free blocks in the filesystem.
# TYPE isilon_statfs_file_node_free gauge
 
# HELP isilon_statfs_file_node_free_percent The percentage of free file nodes in the filesystem.
# TYPE isilon_statfs_file_node_free_percent gauge
 
# HELP isilon_statfs_file_node_total The total number of file nodes in the filesystem.
# TYPE isilon_statfs_file_node_total gauge
 
# HELP isilon_storage_pool_balanced 0 if the storage pool is balanced, 1 if it is not.
# TYPE isilon_storage_pool_balanced gauge
 
# HELP isilon_storage_pool_bytes_avail Number of bytes available on the storage pool.
# TYPE isilon_storage_pool_bytes_avail gauge
 
# HELP isilon_storage_pool_bytes_avail_ssd Number of bytes available on ssd for the storage pool.
# TYPE isilon_storage_pool_bytes_avail_ssd gauge
 
# HELP isilon_storage_pool_bytes_free Number of bytes available on the storage pool.
# TYPE isilon_storage_pool_bytes_free gauge
 
# HELP isilon_storage_pool_bytes_free_ssd Number of bytes free on ssd for the storage pool.
# TYPE isilon_storage_pool_bytes_free_ssd gauge
 
# HELP isilon_storage_pool_bytes_total Total number of bytes on the storage pool.
# TYPE isilon_storage_pool_bytes_total gauge
 
# HELP isilon_storage_pool_bytes_total_ssd Total number of bytes on ssd for the storage pool.
# TYPE isilon_storage_pool_bytes_total_ssd gauge
 
# HELP isilon_storage_pool_bytes_virtual_hot_spare Number of bytes in vhs for the storage pool.
# TYPE isilon_storage_pool_bytes_virtual_hot_spare gauge
 
# HELP isilon_storage_pool_manual 0 of storage pool is not manually managed, 1 is it is.
# TYPE isilon_storage_pool_manual gauge
 
# HELP isilon_storage_pool_total Total number of storage pools on a cluster.
# TYPE isilon_storage_pool_total gauge
 
# HELP isilon_sync_policies_total_count Total number of sync policies on the cluster.
# TYPE isilon_sync_policies_total_count gauge
 
# HELP isilon_sync_policy_enabled 1 = Enabled, 0 = Disabled for the specified policy
# TYPE isilon_sync_policy_enabled gauge
 
# HELP isilon_sync_policy_last_start Epoch timestame for last sync start for a policy.
# TYPE isilon_sync_policy_last_start gauge
 
# HELP isilon_sync_policy_last_success Epoch timestamp of the last successful sync for a policy.
# TYPE isilon_sync_policy_last_success gauge
 
# HELP isilon_sync_policy_priority Current priority for the policy.
# TYPE isilon_sync_policy_priority gauge
 
# HELP isilon_sync_policy_state Last state from run of sync policy.
# TYPE isilon_sync_policy_state gauge
 
# HELP isilon_sync_policy_workers_per_node Number of worker threads per node for a policy.
# TYPE isilon_sync_policy_workers_per_node gauge
Contributing

Contributions are welcomed! Read the Contributing Guide for more information.

Licensing

This project is licensed under the MIT license. See LICENSE for more information.

Documentation

Overview

Copyright 2018 Adobe All Rights Reserved.

NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms of the Adobe license agreement accompanying it. If you have received this file from a source other than Adobe, then your use, modification, or distribution of it requires the prior written permission of Adobe.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL