Documentation ¶
Index ¶
- Variables
- func Execute()
- func LabelValues(cmd *cobra.Command, args []string) (ret error)
- func MetricNames(cmd *cobra.Command, args []string) (ret error)
- func Query(cmd *cobra.Command, args []string) (ret error)
- func Series(cmd *cobra.Command, args []string) (ret error)
- func Snapshot(cmd *cobra.Command, args []string) (ret error)
Examples ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var RootCmd = &cobra.Command{
Use: "maia",
Short: "OpenStack controlled access to Prometheus metrics",
Long: `Maia provides multi-tenancy access to Prometheus metrics through an OpenStack service. The maia command
can be used both as server and as a client to access a Maia service running elsewhere.`,
}
RootCmd represents the base command when called without any subcommands
Functions ¶
func Execute ¶
func Execute()
Execute adds all child commands to the root command sets flags appropriately. This is called by main.main(). It only needs to happen once to the rootCmd.
func LabelValues ¶
LabelValues is just public because unit testing frameworks complains otherwise
Example (Json) ¶
t := testReporter{} ctrl := gomock.NewController(t) defer ctrl.Finish() keystoneMock, storageMock := setupTest(ctrl) labelName := "component" outputFormat = "jSon" expectAuth(keystoneMock) storageMock.EXPECT().LabelValues(labelName, storage.JSON).Return(test.HTTPResponseFromFile("fixtures/label_values.json"), nil) labelValuesCmd.RunE(labelValuesCmd, []string{labelName})
Output: { "Status": "success", "data": [ "objectstore" ] }
Example (Values) ¶
t := testReporter{} ctrl := gomock.NewController(t) defer ctrl.Finish() keystoneMock, storageMock := setupTest(ctrl) labelName := "component" outputFormat = "VaLue" expectAuth(keystoneMock) storageMock.EXPECT().LabelValues(labelName, storage.JSON).Return(test.HTTPResponseFromFile("fixtures/label_values.json"), nil) labelValuesCmd.RunE(labelValuesCmd, []string{labelName})
Output: objectstore
func MetricNames ¶
MetricNames is just public because unit testing frameworks complains otherwise
Example (Values) ¶
t := testReporter{} ctrl := gomock.NewController(t) defer ctrl.Finish() keystoneMock, storageMock := setupTest(ctrl) outputFormat = "valuE" expectAuth(keystoneMock) storageMock.EXPECT().LabelValues("__name__", storage.JSON).Return(test.HTTPResponseFromFile("fixtures/metric_names.json"), nil) metricNamesCmd.RunE(metricNamesCmd, []string{})
Output: vcenter_cpu_costop_summation vcenter_cpu_demand_average vcenter_cpu_idle_summation vcenter_cpu_latency_average
func Query ¶
Query is just public because unit testing frameworks complains otherwise
Example (Json) ¶
t := testReporter{} ctrl := gomock.NewController(t) defer ctrl.Finish() keystoneMock, storageMock := setupTest(ctrl) timestamp = "2017-07-01T20:10:30.781Z" timeoutStr := "1440s" timeout, _ = time.ParseDuration(timeoutStr) query := "sum(blackbox_api_status_gauge{check=~\"keystone\"})" outputFormat = "jsoN" expectAuth(keystoneMock) storageMock.EXPECT().Query(query, timestamp, timeoutStr, storage.JSON).Return(test.HTTPResponseFromFile("fixtures/query.json"), nil) queryCmd.RunE(queryCmd, []string{query})
Output: { "status": "success", "data": { "resultType": "vector", "result": [ { "metric": {}, "value": [ 1499066783.997, "0" ] } ] } }
Example (RangeJSON) ¶
t := testReporter{} ctrl := gomock.NewController(t) defer ctrl.Finish() keystoneMock, storageMock := setupTest(ctrl) starttime = "2017-07-13T20:10:30.781Z" endtime = "2017-07-13T20:15:00.781Z" stepsizeStr := "300s" stepsize, _ = time.ParseDuration(stepsizeStr) timeoutStr := "90s" timeout, _ = time.ParseDuration(timeoutStr) query := "sum(blackbox_api_status_gauge{check=~\"keystone\"})" outputFormat = "jsoN" expectAuth(keystoneMock) storageMock.EXPECT().QueryRange(query, starttime, endtime, stepsizeStr, timeoutStr, "application/json").Return(test.HTTPResponseFromFile("fixtures/query_range_values.json"), nil) queryCmd.RunE(queryCmd, []string{query})
Output: { "status": "success", "data": { "resultType": "matrix", "result": [ { "metric": {}, "values": [ [ 1499976630.781, "0" ], [ 1499976930.781, "1" ] ] } ] } }
Example (RangeSeriesTable) ¶
t := testReporter{} ctrl := gomock.NewController(t) defer ctrl.Finish() keystoneMock, storageMock := setupTest(ctrl) starttime = "2017-07-22T20:10:00.000Z" endtime = "2017-07-22T20:20:00.000Z" stepsizeStr := "300s" stepsize, _ = time.ParseDuration(stepsizeStr) timeoutStr := "90s" timeout, _ = time.ParseDuration(timeoutStr) query := "blackbox_api_status_gauge{check=~\"keystone\"})" outputFormat = "tablE" columns = "region,check,instance" expectAuth(keystoneMock) storageMock.EXPECT().QueryRange(query, starttime, endtime, stepsizeStr, timeoutStr, "application/json").Return(test.HTTPResponseFromFile("fixtures/query_range_series.json"), nil) queryCmd.RunE(queryCmd, []string{query})
Output: region check instance 2017-07-22T20:10:00Z 2017-07-22T20:15:00Z 2017-07-22T20:20:00Z staging keystone 100.64.0.102:9102 0 1 0
Example (RangeValuesTable) ¶
t := testReporter{} ctrl := gomock.NewController(t) defer ctrl.Finish() keystoneMock, storageMock := setupTest(ctrl) starttime = "2017-07-13T20:10:30.000Z" endtime = "2017-07-13T20:15:00.000Z" stepsizeStr := "300s" stepsize, _ = time.ParseDuration(stepsizeStr) timeoutStr := "90s" timeout, _ = time.ParseDuration(timeoutStr) query := "sum(blackbox_api_status_gauge{check=~\"keystone\"})" outputFormat = "tablE" expectAuth(keystoneMock) storageMock.EXPECT().QueryRange(query, starttime, endtime, stepsizeStr, timeoutStr, "application/json").Return(test.HTTPResponseFromFile("fixtures/query_range_values.json"), nil) queryCmd.RunE(queryCmd, []string{query})
Output: 2017-07-13T20:10:00Z 2017-07-13T20:15:00Z 0 1
Example (Table) ¶
t := testReporter{} ctrl := gomock.NewController(t) defer ctrl.Finish() keystoneMock, storageMock := setupTest(ctrl) timestamp = "2017-07-03T07:26:23.997Z" timeoutStr := "1440s" timeout, _ = time.ParseDuration(timeoutStr) query := "sum(blackbox_api_status_gauge{check=~\"keystone\"})" outputFormat = "TaBle" expectAuth(keystoneMock) storageMock.EXPECT().Query(query, timestamp, timeoutStr, storage.JSON).Return(test.HTTPResponseFromFile("fixtures/query.json"), nil) queryCmd.RunE(queryCmd, []string{query})
Output: __timestamp__ __value__ 2017-07-03T07:26:23.997Z 0
Example (TableColumns) ¶
t := testReporter{} ctrl := gomock.NewController(t) defer ctrl.Finish() keystoneMock, storageMock := setupTest(ctrl) timestamp = "2019-05-09T12:00:10.724Z" timeoutStr := "1440s" timeout, _ = time.ParseDuration(timeoutStr) query := "limes_domain_quota" outputFormat = "TaBle" columns = "domain" expectAuth(keystoneMock) storageMock.EXPECT().Query(query, timestamp, timeoutStr, storage.JSON).Return(test.HTTPResponseFromFile("fixtures/query2.json"), nil) queryCmd.RunE(queryCmd, []string{query})
Output: domain __timestamp__ __value__ monsoon3 2019-05-09T12:00:10.724Z 54975581388800 monsoon3 2019-05-09T12:00:10.724Z 11240
func Series ¶
Series is just public because unit testing frameworks complains otherwise
Example (Json) ¶
t := testReporter{} ctrl := gomock.NewController(t) defer ctrl.Finish() keystoneMock, storageMock := setupTest(ctrl) selector = "component!=\"\"" starttime = "2017-07-01T20:10:30.781Z" endtime = "2017-07-02T04:00:00.000Z" outputFormat = "jsoN" expectAuth(keystoneMock) storageMock.EXPECT().Series([]string{"{" + selector + "}"}, starttime, endtime, storage.JSON).Return(test.HTTPResponseFromFile("fixtures/series.json"), nil) seriesCmd.RunE(seriesCmd, []string{})
Output: { "status": "success", "data": [ { "__name__": "up", "component": "objectstore", "instance": "100.64.1.159:9102", "job": "endpoints", "kubernetes_name": "swift-proxy-cluster-3", "kubernetes_namespace": "swift", "os_cluster": "cluster-3", "region": "staging", "system": "openstack" } ] }
Example (Table) ¶
t := testReporter{} ctrl := gomock.NewController(t) defer ctrl.Finish() keystoneMock, storageMock := setupTest(ctrl) selector = "component!=\"\"" starttime = "2017-07-01T20:10:30.781Z" endtime = "2017-07-02T04:00:00.000Z" outputFormat = "table" expectAuth(keystoneMock) storageMock.EXPECT().Series([]string{"{" + selector + "}"}, starttime, endtime, storage.JSON).Return(test.HTTPResponseFromFile("fixtures/series.json"), nil) seriesCmd.RunE(seriesCmd, []string{})
Output: __name__ component instance job kubernetes_name kubernetes_namespace os_cluster region system up objectstore 100.64.1.159:9102 endpoints swift-proxy-cluster-3 swift cluster-3 staging openstack
func Snapshot ¶
Snapshot is just public because unit testing frameworks complains otherwise
Example ¶
t := testReporter{} ctrl := gomock.NewController(&t) defer ctrl.Finish() keystoneMock, storageMock := setupTest(ctrl) outputFormat = "vAlue" selector = "vmware_name=\"win_cifs_13\"" expectAuth(keystoneMock) storageMock.EXPECT().Federate([]string{"{" + selector + "}"}, storage.PlainText).Return(test.HTTPResponseFromFile("fixtures/federate.txt"), nil) snapshotCmd.RunE(snapshotCmd, []string{})
Output: # TYPE vcenter_cpu_costop_summation untyped vcenter_cpu_costop_summation{component="vcenter-exporter-vc-a-0",instance="100.65.0.252:9102",instance_uuid="3b32f415-c953-40b9-883d-51321611a7d4",job="endpoints",kubernetes_name="vcenter-exporter-vc-a-0",kubernetes_namespace="maia",metric_detail="3",project_id="12345",region="staging",service="metrics",system="openstack",vcenter_name="STAGINGA",vcenter_node="10.44.2.40",vmware_name="win_cifs_13"} 0 1500291187275
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.