46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
# File 'lib/pg_metrics/statsd.rb', line 46
def self.parse(args)
options = {
host: "localhost",
port: 8125,
conn: "",
scheme: %(#{Socket.gethostname}.postgresql),
dbstats: [PgMetrics::Metrics::Functions,
PgMetrics::Metrics::Locks,
PgMetrics::Metrics::TableSizes,
PgMetrics::Metrics::IndexSizes,
PgMetrics::Metrics::TableStatio,
PgMetrics::Metrics::TableStats,
PgMetrics::Metrics::IndexStatio,
PgMetrics::Metrics::IndexStats].to_set
}
OptionParser.new do |opts|
opts.on("-h", "--host STATSD_HOST", "StatsD host") { |v| options[:host] = v }
opts.on("-p", "--port STATSD_PORT", "StatsD port") { |v| options[:port] = v.to_i }
opts.on("-c", "--connection CONN", "PostgreSQL connection string") { |v| options[:conn] = v }
opts.on("-d", "--dbname DBNAME", "PostgreSQL database name for database metrics") { |v| options[:dbname] = v }
opts.on("-e", "--exclude REGEXP", "Exclude objects matching given regexp") { |v| options[:exclude] = ::Regexp.new(v) }
opts.on("-s", "--scheme SCHEME", "Metric namespace") { |v| options[:scheme] = v }
opts.on("--[no-]functions", "Collect database function stats") { |v| options[:dbstats].delete(PgMetrics::Metrics::Functions) unless v }
opts.on("--[no-]locks", "Collect database lock stats") { |v| options[:dbstats].delete(PgMetrics::Metrics::Locks) unless v }
opts.on("--[no-]table-sizes", "Collect database table size stats ") { |v| options[:dbstats].delete(PgMetrics::Metrics::TableSizes) unless v }
opts.on("--[no-]index-sizes", "Collect database index size stats ") { |v| options[:dbstats].delete(PgMetrics::Metrics::IndexSizes) unless v }
opts.on("--[no-]table-statio", "Collect database table statio stats ") { |v| options[:dbstats].delete(PgMetrics::Metrics::TableStatio) unless v }
opts.on("--[no-]table-stats", "Collect database table stats ") { |v| options[:dbstats].delete(PgMetrics::Metrics::TableStats) unless v }
opts.on("--[no-]index-statio", "Collect database index statio stats ") { |v| options[:dbstats].delete(PgMetrics::Metrics::IndexStatio) unless v }
opts.on("--[no-]index-stats", "Collect database index stats ") { |v| options[:dbstats].delete(PgMetrics::Metrics::IndexStats) unless v }
opts.on("--pgbouncer", "Collect pgbouncer stats") { |v| options[:pgbouncer] = true }
opts.on("--verbose") { |v| options[:verbose] = true }
opts.on("--version") { |v| options[:version] = v }
end.order!(args)
options
end
|