diff --git a/README.md b/README.md index 0f0f85ba2..a5c6f08e4 100644 --- a/README.md +++ b/README.md @@ -195,6 +195,7 @@ configuration options. * [smart](./plugins/inputs/smart) * [snmp](./plugins/inputs/snmp) * [snmp_legacy](./plugins/inputs/snmp_legacy) +* [solr](./plugins/inputs/solr) * [sql server](./plugins/inputs/sqlserver) (microsoft) * [teamspeak](./plugins/inputs/teamspeak) * [tomcat](./plugins/inputs/tomcat) diff --git a/etc/telegraf.conf b/etc/telegraf.conf index f3128b8fd..63ce2ebfe 100644 --- a/etc/telegraf.conf +++ b/etc/telegraf.conf @@ -2329,6 +2329,15 @@ # sub_tables=[".1.3.6.1.2.1.2.2.1.13", "bytes_recv", "bytes_send"] +# # Read metrics from Solr Server +# [[inputs.solr]] +# ## specify a list of one or more Solr servers +# servers = ["http://localhost:8983"] +# ## +# ## specify a list of one or more Solr cores (default - all) +# # cores = ["main"] + + # # Read metrics from Microsoft SQL Server # [[inputs.sqlserver]] # ## Specify instances to monitor with a list of connection strings. diff --git a/plugins/inputs/all/all.go b/plugins/inputs/all/all.go index 235169c86..421fd113c 100644 --- a/plugins/inputs/all/all.go +++ b/plugins/inputs/all/all.go @@ -80,6 +80,7 @@ import ( _ "github.com/influxdata/telegraf/plugins/inputs/snmp" _ "github.com/influxdata/telegraf/plugins/inputs/snmp_legacy" _ "github.com/influxdata/telegraf/plugins/inputs/socket_listener" + _ "github.com/influxdata/telegraf/plugins/inputs/solr" _ "github.com/influxdata/telegraf/plugins/inputs/sqlserver" _ "github.com/influxdata/telegraf/plugins/inputs/statsd" _ "github.com/influxdata/telegraf/plugins/inputs/sysstat" diff --git a/plugins/inputs/solr/README.md b/plugins/inputs/solr/README.md new file mode 100644 index 000000000..214ed4f7e --- /dev/null +++ b/plugins/inputs/solr/README.md @@ -0,0 +1,31 @@ +# Solr input plugin + +The [solr](http://lucene.apache.org/solr/) plugin collects stats via the +[MBean Request Handler](https://cwiki.apache.org/confluence/display/solr/MBean+Request+Handler) + +More about [performance statistics](https://cwiki.apache.org/confluence/display/solr/Performance+Statistics+Reference) + +### Configuration: + +``` +[[inputs.solr]] + ## specify a list of one or more Solr servers + servers = ["http://localhost:8983"] + ## + ## specify a list of one or more Solr cores (default - all) + # cores = ["main"] +``` + +### Example output of gathered metrics: + +``` +➜ ~ telegraf -config telegraf.conf -input-filter solr -test +* Plugin: solr, Collection 1 +> solr_core,core=main,handler=searcher,host=testhost deleted_docs=17616645i,max_docs=261848363i,num_docs=244231718i 1478214949000000000 +> solr_core,core=main,handler=core,host=testhost deleted_docs=0i,max_docs=0i,num_docs=0i 1478214949000000000 +> solr_queryhandler,core=main,handler=/replication,host=testhost 15min_rate_reqs_per_second=0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000444659081257,5min_rate_reqs_per_second=0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014821969375,75th_pc_request_time=16.484211,95th_pc_request_time=16.484211,999th_pc_request_time=16.484211,99th_pc_request_time=16.484211,avg_requests_per_second=0.0000008443809966322143,avg_time_per_request=12.984811,errors=0i,handler_start=1474662050865i,median_request_time=11.352427,requests=3i,timeouts=0i,total_time=38.954433 1478214949000000000 +> solr_queryhandler,core=main,handler=/update/extract,host=testhost 15min_rate_reqs_per_second=0,5min_rate_reqs_per_second=0,75th_pc_request_time=0,95th_pc_request_time=0,999th_pc_request_time=0,99th_pc_request_time=0,avg_requests_per_second=0,avg_time_per_request=0,errors=0i,handler_start=0i,median_request_time=0,requests=0i,timeouts=0i,total_time=0 1478214949000000000 +> solr_queryhandler,core=main,handler=org.apache.solr.handler.component.SearchHandler,host=testhost 15min_rate_reqs_per_second=0,5min_rate_reqs_per_second=0,75th_pc_request_time=0,95th_pc_request_time=0,999th_pc_request_time=0,99th_pc_request_time=0,avg_requests_per_second=0,avg_time_per_request=0,errors=0i,handler_start=1474662050861i,median_request_time=0,requests=0i,timeouts=0i,total_time=0 1478214949000000000 +> solr_queryhandler,core=main,handler=/tvrh,host=testhost 15min_rate_reqs_per_second=0,5min_rate_reqs_per_second=0,75th_pc_request_time=0,95th_pc_request_time=0,999th_pc_request_time=0,99th_pc_request_time=0,avg_requests_per_second=0,avg_time_per_request=0,errors=0i,handler_start=0i,median_request_time=0,requests=0i,timeouts=0i,total_time=0 1478214949000000000 +[…] +``` diff --git a/plugins/inputs/solr/solr.go b/plugins/inputs/solr/solr.go new file mode 100644 index 000000000..1df8fa4c0 --- /dev/null +++ b/plugins/inputs/solr/solr.go @@ -0,0 +1,442 @@ +package solr + +import ( + "encoding/json" + "fmt" + "net/http" + "strconv" + "strings" + "sync" + "time" + + "github.com/influxdata/telegraf" + "github.com/influxdata/telegraf/internal" + "github.com/influxdata/telegraf/plugins/inputs" +) + +const mbeansPath = "/admin/mbeans?stats=true&wt=json&cat=CORE&cat=QUERYHANDLER&cat=UPDATEHANDLER&cat=CACHE" +const adminCoresPath = "/solr/admin/cores?action=STATUS&wt=json" + +type node struct { + Host string `json:"host"` +} + +const sampleConfig = ` + ## specify a list of one or more Solr servers + servers = ["http://localhost:8983"] + + ## specify a list of one or more Solr cores (default - all) + # cores = ["main"] +` + +// Solr is a plugin to read stats from one or many Solr servers +type Solr struct { + Local bool + Servers []string + HTTPTimeout internal.Duration + Cores []string + client *http.Client +} + +// AdminCoresStatus is an exported type that +// contains a response with information about Solr cores. +type AdminCoresStatus struct { + Status map[string]struct { + Index struct { + SizeInBytes int64 `json:"sizeInBytes"` + NumDocs int64 `json:"numDocs"` + MaxDoc int64 `json:"maxDoc"` + DeletedDocs int64 `json:"deletedDocs"` + } `json:"index"` + } `json:"status"` +} + +// MBeansData is an exported type that +// contains a response from Solr with metrics +type MBeansData struct { + Headers ResponseHeader `json:"responseHeader"` + SolrMbeans []json.RawMessage `json:"solr-mbeans"` +} + +// ResponseHeader is an exported type that +// contains a response metrics: QTime and Status +type ResponseHeader struct { + QTime int64 `json:"QTime"` + Status int64 `json:"status"` +} + +// Core is an exported type that +// contains Core metrics +type Core struct { + Stats struct { + DeletedDocs int64 `json:"deletedDocs"` + MaxDoc int64 `json:"maxDoc"` + NumDocs int64 `json:"numDocs"` + } `json:"stats"` +} + +// QueryHandler is an exported type that +// contains query handler metrics +type QueryHandler struct { + Stats struct { + One5minRateReqsPerSecond float64 `json:"15minRateReqsPerSecond"` + FiveMinRateReqsPerSecond float64 `json:"5minRateReqsPerSecond"` + Seven5thPcRequestTime float64 `json:"75thPcRequestTime"` + Nine5thPcRequestTime float64 `json:"95thPcRequestTime"` + Nine99thPcRequestTime float64 `json:"999thPcRequestTime"` + Nine9thPcRequestTime float64 `json:"99thPcRequestTime"` + AvgRequestsPerSecond float64 `json:"avgRequestsPerSecond"` + AvgTimePerRequest float64 `json:"avgTimePerRequest"` + Errors int64 `json:"errors"` + HandlerStart int64 `json:"handlerStart"` + MedianRequestTime float64 `json:"medianRequestTime"` + Requests int64 `json:"requests"` + Timeouts int64 `json:"timeouts"` + TotalTime float64 `json:"totalTime"` + } `json:"stats"` +} + +// UpdateHandler is an exported type that +// contains update handler metrics +type UpdateHandler struct { + Stats struct { + Adds int64 `json:"adds"` + AutocommitMaxDocs int64 `json:"autocommit maxDocs"` + AutocommitMaxTime string `json:"autocommit maxTime"` + Autocommits int64 `json:"autocommits"` + Commits int64 `json:"commits"` + CumulativeAdds int64 `json:"cumulative_adds"` + CumulativeDeletesByID int64 `json:"cumulative_deletesById"` + CumulativeDeletesByQuery int64 `json:"cumulative_deletesByQuery"` + CumulativeErrors int64 `json:"cumulative_errors"` + DeletesByID int64 `json:"deletesById"` + DeletesByQuery int64 `json:"deletesByQuery"` + DocsPending int64 `json:"docsPending"` + Errors int64 `json:"errors"` + ExpungeDeletes int64 `json:"expungeDeletes"` + Optimizes int64 `json:"optimizes"` + Rollbacks int64 `json:"rollbacks"` + SoftAutocommits int64 `json:"soft autocommits"` + } `json:"stats"` +} + +// Hitratio is an helper interface +// so we can later on convert it to float64 +type Hitratio interface{} + +// Cache is an exported type that +// contains cache metrics +type Cache struct { + Stats struct { + CumulativeEvictions int64 `json:"cumulative_evictions"` + CumulativeHitratio Hitratio `json:"cumulative_hitratio"` + CumulativeHits int64 `json:"cumulative_hits"` + CumulativeInserts int64 `json:"cumulative_inserts"` + CumulativeLookups int64 `json:"cumulative_lookups"` + Evictions int64 `json:"evictions"` + Hitratio Hitratio `json:"hitratio"` + Hits int64 `json:"hits"` + Inserts int64 `json:"inserts"` + Lookups int64 `json:"lookups"` + Size int64 `json:"size"` + WarmupTime int64 `json:"warmupTime"` + } `json:"stats"` +} + +// NewSolr return a new instance of Solr +func NewSolr() *Solr { + return &Solr{ + HTTPTimeout: internal.Duration{Duration: time.Second * 5}, + } +} + +// SampleConfig returns sample configuration for this plugin. +func (s *Solr) SampleConfig() string { + return sampleConfig +} + +// Description returns the plugin description. +func (s *Solr) Description() string { + return "Read stats from one or more Solr servers or cores" +} + +// Gather reads the stats from Solr and writes it to the +// Accumulator. +func (s *Solr) Gather(acc telegraf.Accumulator) error { + if s.client == nil { + client := s.createHTTPClient() + s.client = client + } + + var wg sync.WaitGroup + wg.Add(len(s.Servers)) + + for _, serv := range s.Servers { + go func(serv string, acc telegraf.Accumulator) { + defer wg.Done() + acc.AddError(s.gatherServerMetrics(serv, acc)) + }(serv, acc) + } + wg.Wait() + return nil +} + +// Gather all metrics from server +func (s *Solr) gatherServerMetrics(server string, acc telegraf.Accumulator) error { + measurementTime := time.Now() + adminCoresStatus := &AdminCoresStatus{} + if err := s.gatherData(s.adminURL(server), adminCoresStatus); err != nil { + return err + } + addAdminCoresStatusToAcc(acc, adminCoresStatus, measurementTime) + cores := s.filterCores(getCoresFromStatus(adminCoresStatus)) + var wg sync.WaitGroup + wg.Add(len(cores)) + for _, core := range cores { + go func(server string, core string, acc telegraf.Accumulator) { + defer wg.Done() + mBeansData := &MBeansData{} + acc.AddError(s.gatherData(s.mbeansURL(server, core), mBeansData)) + acc.AddError(addCoreMetricsToAcc(acc, core, mBeansData, measurementTime)) + acc.AddError(addQueryHandlerMetricsToAcc(acc, core, mBeansData, measurementTime)) + acc.AddError(addUpdateHandlerMetricsToAcc(acc, core, mBeansData, measurementTime)) + acc.AddError(addCacheMetricsToAcc(acc, core, mBeansData, measurementTime)) + }(server, core, acc) + } + wg.Wait() + return nil +} + +// Use cores from configuration if exists, else use cores from server +func (s *Solr) filterCores(serverCores []string) []string { + if len(s.Cores) == 0 { + return serverCores + } + return s.Cores +} + +// Return list of cores from solr server +func getCoresFromStatus(adminCoresStatus *AdminCoresStatus) []string { + serverCores := []string{} + for coreName := range adminCoresStatus.Status { + serverCores = append(serverCores, coreName) + } + return serverCores +} + +// Add core metrics from admin to accumulator +// This is the only point where size_in_bytes is available (as far as I checked) +func addAdminCoresStatusToAcc(acc telegraf.Accumulator, adminCoreStatus *AdminCoresStatus, time time.Time) { + for core, metrics := range adminCoreStatus.Status { + coreFields := map[string]interface{}{ + "deleted_docs": metrics.Index.DeletedDocs, + "max_docs": metrics.Index.MaxDoc, + "num_docs": metrics.Index.NumDocs, + "size_in_bytes": metrics.Index.SizeInBytes, + } + acc.AddFields( + "solr_admin", + coreFields, + map[string]string{"core": core}, + time, + ) + } +} + +// Add core metrics section to accumulator +func addCoreMetricsToAcc(acc telegraf.Accumulator, core string, mBeansData *MBeansData, time time.Time) error { + var coreMetrics map[string]Core + if err := json.Unmarshal(mBeansData.SolrMbeans[1], &coreMetrics); err != nil { + return err + } + for name, metrics := range coreMetrics { + if strings.Contains(name, "@") { + continue + } + coreFields := map[string]interface{}{ + "deleted_docs": metrics.Stats.DeletedDocs, + "max_docs": metrics.Stats.MaxDoc, + "num_docs": metrics.Stats.NumDocs, + } + acc.AddFields( + "solr_core", + coreFields, + map[string]string{ + "core": core, + "handler": name}, + time, + ) + } + return nil +} + +// Add query metrics section to accumulator +func addQueryHandlerMetricsToAcc(acc telegraf.Accumulator, core string, mBeansData *MBeansData, time time.Time) error { + var queryMetrics map[string]QueryHandler + + if err := json.Unmarshal(mBeansData.SolrMbeans[3], &queryMetrics); err != nil { + return err + } + for name, metrics := range queryMetrics { + coreFields := map[string]interface{}{ + "15min_rate_reqs_per_second": metrics.Stats.One5minRateReqsPerSecond, + "5min_rate_reqs_per_second": metrics.Stats.FiveMinRateReqsPerSecond, + "75th_pc_request_time": metrics.Stats.Seven5thPcRequestTime, + "95th_pc_request_time": metrics.Stats.Nine5thPcRequestTime, + "999th_pc_request_time": metrics.Stats.Nine99thPcRequestTime, + "99th_pc_request_time": metrics.Stats.Nine9thPcRequestTime, + "avg_requests_per_second": metrics.Stats.AvgRequestsPerSecond, + "avg_time_per_request": metrics.Stats.AvgTimePerRequest, + "errors": metrics.Stats.Errors, + "handler_start": metrics.Stats.HandlerStart, + "median_request_time": metrics.Stats.MedianRequestTime, + "requests": metrics.Stats.Requests, + "timeouts": metrics.Stats.Timeouts, + "total_time": metrics.Stats.TotalTime, + } + acc.AddFields( + "solr_queryhandler", + coreFields, + map[string]string{ + "core": core, + "handler": name}, + time, + ) + } + return nil +} + +// Add update metrics section to accumulator +func addUpdateHandlerMetricsToAcc(acc telegraf.Accumulator, core string, mBeansData *MBeansData, time time.Time) error { + var updateMetrics map[string]UpdateHandler + + if err := json.Unmarshal(mBeansData.SolrMbeans[5], &updateMetrics); err != nil { + return err + } + for name, metrics := range updateMetrics { + var autoCommitMaxTime int64 + if len(metrics.Stats.AutocommitMaxTime) > 2 { + autoCommitMaxTime, _ = strconv.ParseInt(metrics.Stats.AutocommitMaxTime[:len(metrics.Stats.AutocommitMaxTime)-2], 0, 64) + } + coreFields := map[string]interface{}{ + "adds": metrics.Stats.Adds, + "autocommit_max_docs": metrics.Stats.AutocommitMaxDocs, + "autocommit_max_time": autoCommitMaxTime, + "autocommits": metrics.Stats.Autocommits, + "commits": metrics.Stats.Commits, + "cumulative_adds": metrics.Stats.CumulativeAdds, + "cumulative_deletes_by_id": metrics.Stats.CumulativeDeletesByID, + "cumulative_deletes_by_query": metrics.Stats.CumulativeDeletesByQuery, + "cumulative_errors": metrics.Stats.CumulativeErrors, + "deletes_by_id": metrics.Stats.DeletesByID, + "deletes_by_query": metrics.Stats.DeletesByQuery, + "docs_pending": metrics.Stats.DocsPending, + "errors": metrics.Stats.Errors, + "expunge_deletes": metrics.Stats.ExpungeDeletes, + "optimizes": metrics.Stats.Optimizes, + "rollbacks": metrics.Stats.Rollbacks, + "soft_autocommits": metrics.Stats.SoftAutocommits, + } + acc.AddFields( + "solr_updatehandler", + coreFields, + map[string]string{ + "core": core, + "handler": name}, + time, + ) + } + return nil +} + +// Get float64 from interface +func getFloat(unk interface{}) float64 { + switch i := unk.(type) { + case float64: + return i + case string: + f, _ := strconv.ParseFloat(i, 64) + return f + default: + return float64(0) + } +} + +// Add cache metrics section to accumulator +func addCacheMetricsToAcc(acc telegraf.Accumulator, core string, mBeansData *MBeansData, time time.Time) error { + var cacheMetrics map[string]Cache + if err := json.Unmarshal(mBeansData.SolrMbeans[7], &cacheMetrics); err != nil { + return err + } + for name, metrics := range cacheMetrics { + cumulativeHits := getFloat(metrics.Stats.CumulativeHitratio) + hitratio := getFloat(metrics.Stats.Hitratio) + coreFields := map[string]interface{}{ + "cumulative_evictions": metrics.Stats.CumulativeEvictions, + "cumulative_hitratio": cumulativeHits, + "cumulative_hits": metrics.Stats.CumulativeHits, + "cumulative_inserts": metrics.Stats.CumulativeInserts, + "cumulative_lookups": metrics.Stats.CumulativeLookups, + "evictions": metrics.Stats.Evictions, + "hitratio": hitratio, + "hits": metrics.Stats.Hits, + "inserts": metrics.Stats.Inserts, + "lookups": metrics.Stats.Lookups, + "size": metrics.Stats.Size, + "warmup_time": metrics.Stats.WarmupTime, + } + acc.AddFields( + "solr_cache", + coreFields, + map[string]string{ + "core": core, + "handler": name}, + time, + ) + } + return nil +} + +// Provide admin url +func (s *Solr) adminURL(server string) string { + return fmt.Sprintf("%s%s", server, adminCoresPath) +} + +// Provide mbeans url +func (s *Solr) mbeansURL(server string, core string) string { + return fmt.Sprintf("%s/solr/%s%s", server, core, mbeansPath) +} + +func (s *Solr) createHTTPClient() *http.Client { + tr := &http.Transport{ + ResponseHeaderTimeout: s.HTTPTimeout.Duration, + } + client := &http.Client{ + Transport: tr, + Timeout: s.HTTPTimeout.Duration, + } + + return client +} + +func (s *Solr) gatherData(url string, v interface{}) error { + r, err := s.client.Get(url) + if err != nil { + return err + } + defer r.Body.Close() + if r.StatusCode != http.StatusOK { + return fmt.Errorf("solr: API responded with status-code %d, expected %d, url %s", + r.StatusCode, http.StatusOK, url) + } + if err = json.NewDecoder(r.Body).Decode(v); err != nil { + return err + } + return nil +} + +func init() { + inputs.Add("solr", func() telegraf.Input { + return NewSolr() + }) +} diff --git a/plugins/inputs/solr/solr_test.go b/plugins/inputs/solr/solr_test.go new file mode 100644 index 000000000..aaaba4676 --- /dev/null +++ b/plugins/inputs/solr/solr_test.go @@ -0,0 +1,62 @@ +package solr + +import ( + "fmt" + "net/http" + "net/http/httptest" + "strings" + "testing" + + "github.com/influxdata/telegraf/testutil" + "github.com/stretchr/testify/require" +) + +func TestGatherStats(t *testing.T) { + ts := createMockServer() + solr := NewSolr() + solr.Servers = []string{ts.URL} + var acc testutil.Accumulator + require.NoError(t, solr.Gather(&acc)) + + acc.AssertContainsTaggedFields(t, "solr_admin", + solrAdminMainCoreStatusExpected, + map[string]string{"core": "main"}) + + acc.AssertContainsTaggedFields(t, "solr_admin", + solrAdminCore1StatusExpected, + map[string]string{"core": "core1"}) + + acc.AssertContainsTaggedFields(t, "solr_core", + solrCoreExpected, + map[string]string{"core": "main", "handler": "searcher"}) + + acc.AssertContainsTaggedFields(t, "solr_queryhandler", + solrQueryHandlerExpected, + map[string]string{"core": "main", "handler": "org.apache.solr.handler.component.SearchHandler"}) + + acc.AssertContainsTaggedFields(t, "solr_updatehandler", + solrUpdateHandlerExpected, + map[string]string{"core": "main", "handler": "updateHandler"}) + + acc.AssertContainsTaggedFields(t, "solr_cache", + solrCacheExpected, + map[string]string{"core": "main", "handler": "filterCache"}) +} + +func createMockServer() *httptest.Server { + return httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if strings.Contains(r.URL.Path, "/solr/admin/cores") { + w.WriteHeader(http.StatusOK) + fmt.Fprintln(w, statusResponse) + } else if strings.Contains(r.URL.Path, "solr/main/admin") { + w.WriteHeader(http.StatusOK) + fmt.Fprintln(w, mBeansMainResponse) + } else if strings.Contains(r.URL.Path, "solr/core1/admin") { + w.WriteHeader(http.StatusOK) + fmt.Fprintln(w, mBeansCore1Response) + } else { + w.WriteHeader(http.StatusNotFound) + fmt.Fprintln(w, "nope") + } + })) +} diff --git a/plugins/inputs/solr/testdata_test.go b/plugins/inputs/solr/testdata_test.go new file mode 100644 index 000000000..30ae0127a --- /dev/null +++ b/plugins/inputs/solr/testdata_test.go @@ -0,0 +1,1824 @@ +package solr + +const statusResponse = ` +{ + "status": { + "core1": { + "index": { + "size": "1.66 GB", + "sizeInBytes": 1784635686, + "lastModified": "2017-01-14T10:30:07.419Z", + "userData": { + "commitTimeMSec": "1484389807419" + }, + "numDocs": 7517488, + "maxDoc": 7620303, + "deletedDocs": 102815, + "version": 267485, + "segmentCount": 21, + "current": true, + "hasDeletions": true, + "directory": "org.apache.lucene.store.MMapDirectory:org.apache.lucene.store.MMapDirectory@/srv/solr-core1/index.20160607000000124 lockFactory=org.apache.lucene.store.SingleInstanceLockFactory@646d42ce" + }, + "name": "core1", + "isDefaultCore": false, + "instanceDir": "solr/core1/", + "dataDir": "/srv/solr-core1/", + "config": "solrconfig.xml", + "schema": "schema.xml", + "startTime": "2016-12-20T18:41:10.449Z", + "uptime": 2314746645 + }, + "main": { + "index": { + "size": "230.5 GB", + "sizeInBytes": 247497521642, + "lastModified": "2017-01-16T11:59:18.189Z", + "userData": { + "commitTimeMSec": "1484567958189" + }, + "numDocs": 168943425, + "maxDoc": 169562700, + "deletedDocs": 619275, + "version": 70688464, + "segmentCount": 33, + "current": true, + "hasDeletions": true, + "directory": "org.apache.lucene.store.MMapDirectory:org.apache.lucene.store.MMapDirectory@/srv/solr/index.20161110090000012 lockFactory=org.apache.lucene.store.SingleInstanceLockFactory@15088f05" + }, + "name": "main", + "isDefaultCore": true, + "instanceDir": "solr/main/", + "dataDir": "/srv/solr/", + "config": "solrconfig.xml", + "schema": "schema.xml", + "startTime": "2016-12-20T18:41:10.796Z", + "uptime": 2314746294 + } + }, + "initFailures": {}, + "defaultCoreName": "main", + "responseHeader": { + "QTime": 13, + "status": 0 + } +} +` + +const mBeansMainResponse = `{ + "solr-mbeans": [ + "CORE", + { + "core": { + "stats": { + "aliases": [ + "main" + ], + "indexDir": "/srv/solr/index.20161110090000012", + "refCount": 2, + "startTime": "2016-12-20T18:41:10.796Z", + "coreName": "main" + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/core/SolrCore.java $", + "description": "SolrCore", + "version": "1.0", + "class": "main" + }, + "searcher": { + "stats": { + "warmupTime": 0, + "registeredAt": "2017-01-17T09:00:03.303Z", + "openedAt": "2017-01-17T09:00:03.301Z", + "searcherName": "Searcher@62d3fac7 main", + "caching": true, + "numDocs": 168962621, + "maxDoc": 169647870, + "deletedDocs": 685249, + "reader": "StandardDirectoryReader(segments_jwq89:70709031:nrt _dp3n5(4.3.1):C168268689/592191 _dph0g(4.3.1):C311982/51776 _dpz3u(4.3.1):C589116/12754 _dpsbv(4.3.1):C262008/22358 _dq1e0(4.3.1):C104991/772 _dpy04(4.3.1):C24856/1389 _dq029(4.3.1):C42680/1406 _dq0rr(4.3.1):C5064/581 _dq13q(4.3.1):C4322/574 _dq165(4.3.1):C4679/364 _dq1kt(4.3.1):C8124/196 _dq1ta(4.3.1):C8138/152 _dq1x7(4.3.1):C3842/76 _dq212(4.3.1):C4934/111 _dq1wi(4.3.1):C778/145 _dq20q(4.3.1):C805/92 _dq20g(4.3.1):C1183/96 _dq21g(4.3.1):C257/58 _dq20y(4.3.1):C159/19 _dq213(4.3.1):C108/17 _dq218(4.3.1):C89/9 _dq21a(4.3.1):C213/20 _dq21d(4.3.1):C100/10 _dq21f(4.3.1):C214/16 _dq21j(4.3.1):C198/17 _dq21m(4.3.1):C112/2 _dq21n(4.3.1):C105/46 _dq21o(4.3.1):C124/2)", + "readerDir": "org.apache.lucene.store.MMapDirectory:org.apache.lucene.store.MMapDirectory@/srv/solr/index.20161110090000012 lockFactory=org.apache.lucene.store.SingleInstanceLockFactory@15088f05", + "indexVersion": 70709031 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java $", + "description": "index searcher", + "version": "1.0", + "class": "org.apache.solr.search.SolrIndexSearcher" + }, + "Searcher@62d3fac7 main": { + "stats": { + "warmupTime": 0, + "registeredAt": "2017-01-17T09:00:03.303Z", + "openedAt": "2017-01-17T09:00:03.301Z", + "searcherName": "Searcher@62d3fac7 main", + "caching": true, + "numDocs": 168962621, + "maxDoc": 169647870, + "deletedDocs": 685249, + "reader": "StandardDirectoryReader(segments_jwq89:70709031:nrt _dp3n5(4.3.1):C168268689/592191 _dph0g(4.3.1):C311982/51776 _dpz3u(4.3.1):C589116/12754 _dpsbv(4.3.1):C262008/22358 _dq1e0(4.3.1):C104991/772 _dpy04(4.3.1):C24856/1389 _dq029(4.3.1):C42680/1406 _dq0rr(4.3.1):C5064/581 _dq13q(4.3.1):C4322/574 _dq165(4.3.1):C4679/364 _dq1kt(4.3.1):C8124/196 _dq1ta(4.3.1):C8138/152 _dq1x7(4.3.1):C3842/76 _dq212(4.3.1):C4934/111 _dq1wi(4.3.1):C778/145 _dq20q(4.3.1):C805/92 _dq20g(4.3.1):C1183/96 _dq21g(4.3.1):C257/58 _dq20y(4.3.1):C159/19 _dq213(4.3.1):C108/17 _dq218(4.3.1):C89/9 _dq21a(4.3.1):C213/20 _dq21d(4.3.1):C100/10 _dq21f(4.3.1):C214/16 _dq21j(4.3.1):C198/17 _dq21m(4.3.1):C112/2 _dq21n(4.3.1):C105/46 _dq21o(4.3.1):C124/2)", + "readerDir": "org.apache.lucene.store.MMapDirectory:org.apache.lucene.store.MMapDirectory@/srv/solr/index.20161110090000012 lockFactory=org.apache.lucene.store.SingleInstanceLockFactory@15088f05", + "indexVersion": 70709031 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java $", + "description": "index searcher", + "version": "1.0", + "class": "org.apache.solr.search.SolrIndexSearcher" + } + }, + "QUERYHANDLER", + { + "org.apache.solr.handler.CSVRequestHandler": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270814, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/CSVRequestHandler.java $", + "description": "Add/Update multiple documents with CSV formatted rows", + "version": "4.3.1", + "class": "org.apache.solr.handler.CSVRequestHandler" + }, + "/admin/": { + "stats": null, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/admin/AdminHandlers.java $", + "description": "Register Standard Admin Handlers", + "version": "4.3.1", + "class": "org.apache.solr.handler.admin.AdminHandlers" + }, + "/admin/mbeans": { + "stats": { + "999thPcRequestTime": 129.19901009200038, + "99thPcRequestTime": 11.944256130000017, + "95thPcRequestTime": 9.10313265, + "75thPcRequestTime": 7.423904, + "medianRequestTime": 0.046796000000000004, + "avgTimePerRequest": 2.0964317122172575, + "handlerStart": 1482259271568, + "requests": 230953, + "errors": 0, + "timeouts": 0, + "totalTime": 484175.0968, + "avgRequestsPerSecond": 0.0967113175627352, + "5minRateReqsPerSecond": 0.5543011916891444, + "15minRateReqsPerSecond": 0.5409225999558686 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/admin/SolrInfoMBeanHandler.java $", + "description": "Get Info (and statistics) for registered SolrInfoMBeans", + "version": "4.3.1", + "class": "org.apache.solr.handler.admin.SolrInfoMBeanHandler" + }, + "/debug/dump": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270816, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/DumpRequestHandler.java $", + "description": "Dump handler (debug)", + "version": "4.3.1", + "class": "org.apache.solr.handler.DumpRequestHandler" + }, + "/admin/logging": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259271569, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/admin/LoggingHandler.java $", + "description": "Logging Handler", + "version": "4.3.1", + "class": "org.apache.solr.handler.admin.LoggingHandler" + }, + "/admin/plugins": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259271568, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/admin/PluginInfoHandler.java $", + "description": "Registry", + "version": "4.3.1", + "class": "org.apache.solr.handler.admin.PluginInfoHandler" + }, + "/admin/system": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259271568, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java $", + "description": "Get System Info", + "version": "4.3.1", + "class": "org.apache.solr.handler.admin.SystemInfoHandler" + }, + "/select": { + "stats": { + "999thPcRequestTime": 145.3845197990004, + "99thPcRequestTime": 1.404113640000005, + "95thPcRequestTime": 0.21192269999999988, + "75thPcRequestTime": 0.12097, + "medianRequestTime": 0.116272, + "avgTimePerRequest": 3.0322834013981987, + "handlerStart": 1482259270810, + "requests": 729510, + "errors": 0, + "timeouts": 9, + "totalTime": 2212081.064154, + "avgRequestsPerSecond": 0.3054827447483145, + "5minRateReqsPerSecond": 0.32614693588972216, + "15minRateReqsPerSecond": 0.3320899738059959 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java $", + "description": "Search using components: query,facet,mlt,highlight,stats,spellcheck,debug,", + "version": "4.3.1", + "class": "org.apache.solr.handler.component.SearchHandler" + }, + "/tvrh": { + "stats": { + "note": "not initialized yet" + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/core/RequestHandlers.java $", + "description": "Lazy[solr.SearchHandler]", + "version": null, + "class": "Lazy[solr.SearchHandler]" + }, + "org.apache.solr.handler.component.SearchHandler": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270810, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java $", + "description": "Search using components: query,facet,mlt,highlight,stats,debug,", + "version": "4.3.1", + "class": "org.apache.solr.handler.component.SearchHandler" + }, + "/admin/luke": { + "stats": { + "999thPcRequestTime": 0.4085, + "99thPcRequestTime": 0.4085, + "95thPcRequestTime": 0.4085, + "75thPcRequestTime": 0.4085, + "medianRequestTime": 0.31491, + "avgTimePerRequest": 0.3105803333333333, + "handlerStart": 1482259271568, + "requests": 3, + "errors": 0, + "timeouts": 0, + "totalTime": 0.931741, + "avgRequestsPerSecond": 1.256252178648736e-06, + "5minRateReqsPerSecond": 1.4821969375e-313, + "15minRateReqsPerSecond": 1.387107477978473e-152 + }, + "docs": [ + "http://wiki.apache.org/solr/LukeRequestHandler" + ], + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java $", + "description": "Lucene Index Browser. Inspired and modeled after Luke: http://www.getopt.org/luke/", + "version": "4.3.1", + "class": "org.apache.solr.handler.admin.LukeRequestHandler" + }, + "/update/json": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270814, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/JsonUpdateRequestHandler.java $", + "description": "Add documents with JSON", + "version": "4.3.1", + "class": "org.apache.solr.handler.JsonUpdateRequestHandler" + }, + "org.apache.solr.handler.admin.AdminHandlers": { + "stats": null, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/admin/AdminHandlers.java $", + "description": "Register Standard Admin Handlers", + "version": "4.3.1", + "class": "org.apache.solr.handler.admin.AdminHandlers" + }, + "org.apache.solr.handler.ReplicationHandler": { + "stats": { + "lastCycleBytesDownloaded": "240149545", + "timesIndexReplicated": "2697", + "timesFailed": "1", + "replicationFailedAt": "Mon Jun 06 11:55:11 UTC 2016", + "indexReplicatedAt": "Tue Jan 17 09:00:03 UTC 2017", + "previousCycleTimeInSeconds": "3", + "isReplicating": "false", + "isPollingDisabled": "false", + "pollInterval": "03:00:00", + "masterUrl": "http://solr-s1:8983/solr/main", + "isSlave": "true", + "isMaster": "false", + "indexPath": "/srv/solr/index.20161110090000012", + "generation": 33439689, + "15minRateReqsPerSecond": 4.3340312709959365e-152, + "5minRateReqsPerSecond": 1.4821969375e-313, + "avgRequestsPerSecond": 2.0937529718964145e-06, + "totalTime": 49.630943, + "timeouts": 0, + "errors": 0, + "requests": 5, + "handlerStart": 1482259270817, + "avgTimePerRequest": 9.9261886, + "medianRequestTime": 8.547115, + "75thPcRequestTime": 12.1924675, + "95thPcRequestTime": 15.377019, + "99thPcRequestTime": 15.377019, + "999thPcRequestTime": 15.377019, + "indexSize": "229.77 GB", + "indexVersion": 1484643564822 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java $", + "description": "ReplicationHandler provides replication of index and configuration files from Master to Slaves", + "version": "4.3.1", + "class": "org.apache.solr.handler.ReplicationHandler" + }, + "org.apache.solr.handler.JsonUpdateRequestHandler": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270814, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/JsonUpdateRequestHandler.java $", + "description": "Add documents with JSON", + "version": "4.3.1", + "class": "org.apache.solr.handler.JsonUpdateRequestHandler" + }, + "org.apache.solr.handler.DumpRequestHandler": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270816, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/DumpRequestHandler.java $", + "description": "Dump handler (debug)", + "version": "4.3.1", + "class": "org.apache.solr.handler.DumpRequestHandler" + }, + "org.apache.solr.handler.RealTimeGetHandler": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270810, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/RealTimeGetHandler.java $", + "description": "The realtime get handler", + "version": "4.3.1", + "class": "org.apache.solr.handler.RealTimeGetHandler" + }, + "/get": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270810, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/RealTimeGetHandler.java $", + "description": "The realtime get handler", + "version": "4.3.1", + "class": "org.apache.solr.handler.RealTimeGetHandler" + }, + "/admin/properties": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259271568, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/admin/PropertiesRequestHandler.java $", + "description": "Get System Properties", + "version": "4.3.1", + "class": "org.apache.solr.handler.admin.PropertiesRequestHandler" + }, + "/query": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270810, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java $", + "description": "Search using components: query,facet,mlt,highlight,stats,debug,", + "version": "4.3.1", + "class": "org.apache.solr.handler.component.SearchHandler" + }, + "/admin/threads": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259271568, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/admin/ThreadDumpHandler.java $", + "description": "Thread Dump", + "version": "4.3.1", + "class": "org.apache.solr.handler.admin.ThreadDumpHandler" + }, + "/analysis/field": { + "stats": { + "note": "not initialized yet" + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/core/RequestHandlers.java $", + "description": "Lazy[solr.FieldAnalysisRequestHandler]", + "version": null, + "class": "Lazy[solr.FieldAnalysisRequestHandler]" + }, + "org.apache.solr.handler.PingRequestHandler": { + "stats": { + "999thPcRequestTime": 41.331967987, + "99thPcRequestTime": 5.392157590000151, + "95thPcRequestTime": 0.4901222999999999, + "75thPcRequestTime": 0.357574, + "medianRequestTime": 0.3474125, + "avgTimePerRequest": 0.7749319095595372, + "handlerStart": 1482259270816, + "requests": 477021, + "errors": 0, + "timeouts": 0, + "totalTime": 369658.79443, + "avgRequestsPerSecond": 0.19975282688134827, + "5minRateReqsPerSecond": 0.2000000000000008, + "15minRateReqsPerSecond": 0.20000000000000234 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/PingRequestHandler.java $", + "description": "Reports application health to a load-balancer", + "version": "4.3.1", + "class": "org.apache.solr.handler.PingRequestHandler" + }, + "/analysis/document": { + "stats": { + "note": "not initialized yet" + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/core/RequestHandlers.java $", + "description": "Lazy[solr.DocumentAnalysisRequestHandler]", + "version": null, + "class": "Lazy[solr.DocumentAnalysisRequestHandler]" + }, + "/spell": { + "stats": { + "note": "not initialized yet" + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/core/RequestHandlers.java $", + "description": "Lazy[solr.SearchHandler]", + "version": null, + "class": "Lazy[solr.SearchHandler]" + }, + "/update/csv": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270814, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/CSVRequestHandler.java $", + "description": "Add/Update multiple documents with CSV formatted rows", + "version": "4.3.1", + "class": "org.apache.solr.handler.CSVRequestHandler" + }, + "org.apache.solr.handler.UpdateRequestHandler": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270811, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/UpdateRequestHandler.java $", + "description": "Add documents using XML (with XSLT), CSV, JSON, or javabin", + "version": "4.3.1", + "class": "org.apache.solr.handler.UpdateRequestHandler" + }, + "/replication": { + "stats": { + "lastCycleBytesDownloaded": "240149545", + "timesIndexReplicated": "2697", + "timesFailed": "1", + "replicationFailedAt": "Mon Jun 06 11:55:11 UTC 2016", + "indexReplicatedAt": "Tue Jan 17 09:00:03 UTC 2017", + "previousCycleTimeInSeconds": "3", + "isReplicating": "false", + "isPollingDisabled": "false", + "pollInterval": "03:00:00", + "masterUrl": "http://solr-s1:8983/solr/main", + "isSlave": "true", + "isMaster": "false", + "indexPath": "/srv/solr/index.20161110090000012", + "generation": 33439689, + "15minRateReqsPerSecond": 4.3340312709959365e-152, + "5minRateReqsPerSecond": 1.4821969375e-313, + "avgRequestsPerSecond": 2.0937529681743243e-06, + "totalTime": 49.630943, + "timeouts": 0, + "errors": 0, + "requests": 5, + "handlerStart": 1482259270817, + "avgTimePerRequest": 9.9261886, + "medianRequestTime": 8.547115, + "75thPcRequestTime": 12.1924675, + "95thPcRequestTime": 15.377019, + "99thPcRequestTime": 15.377019, + "999thPcRequestTime": 15.377019, + "indexSize": "229.77 GB", + "indexVersion": 1484643564822 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java $", + "description": "ReplicationHandler provides replication of index and configuration files from Master to Slaves", + "version": "4.3.1", + "class": "org.apache.solr.handler.ReplicationHandler" + }, + "/admin/ping": { + "stats": { + "999thPcRequestTime": 41.331967987, + "99thPcRequestTime": 5.392157590000151, + "95thPcRequestTime": 0.4901222999999999, + "75thPcRequestTime": 0.357574, + "medianRequestTime": 0.3474125, + "avgTimePerRequest": 0.7749319095595372, + "handlerStart": 1482259270816, + "requests": 477021, + "errors": 0, + "timeouts": 0, + "totalTime": 369658.79443, + "avgRequestsPerSecond": 0.19975282659471533, + "5minRateReqsPerSecond": 0.2000000000000008, + "15minRateReqsPerSecond": 0.20000000000000234 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/PingRequestHandler.java $", + "description": "Reports application health to a load-balancer", + "version": "4.3.1", + "class": "org.apache.solr.handler.PingRequestHandler" + }, + "/update": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270811, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/UpdateRequestHandler.java $", + "description": "Add documents using XML (with XSLT), CSV, JSON, or javabin", + "version": "4.3.1", + "class": "org.apache.solr.handler.UpdateRequestHandler" + }, + "/terms": { + "stats": { + "note": "not initialized yet" + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/core/RequestHandlers.java $", + "description": "Lazy[solr.SearchHandler]", + "version": null, + "class": "Lazy[solr.SearchHandler]" + }, + "/admin/file": { + "stats": { + "999thPcRequestTime": 0.509739, + "99thPcRequestTime": 0.509739, + "95thPcRequestTime": 0.509739, + "75thPcRequestTime": 0.38605350000000005, + "medianRequestTime": 0.184437, + "avgTimePerRequest": 0.2358606, + "handlerStart": 1482259271569, + "requests": 5, + "errors": 0, + "timeouts": 0, + "totalTime": 1.179303, + "avgRequestsPerSecond": 2.0937536245042723e-06, + "5minRateReqsPerSecond": 1.4821969375e-313, + "15minRateReqsPerSecond": 3.0856020161426622e-152 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/admin/ShowFileRequestHandler.java $", + "description": "Admin Get File -- view config files directly", + "version": "4.3.1", + "class": "org.apache.solr.handler.admin.ShowFileRequestHandler" + }, + "/update/extract": { + "stats": { + "note": "not initialized yet" + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/core/RequestHandlers.java $", + "description": "Lazy[solr.extraction.ExtractingRequestHandler]", + "version": null, + "class": "Lazy[solr.extraction.ExtractingRequestHandler]" + } + }, + "UPDATEHANDLER", + { + "updateHandler": { + "stats": { + "cumulative_errors": 0, + "expungeDeletes": 0, + "rollbacks": 0, + "optimizes": 0, + "soft autocommits": 0, + "autocommits": 0, + "autocommit maxTime": "900ms", + "autocommit maxDocs": 500, + "commits": 0, + "docsPending": 0, + "adds": 0, + "deletesById": 0, + "deletesByQuery": 0, + "errors": 0, + "cumulative_adds": 0, + "cumulative_deletesById": 0, + "cumulative_deletesByQuery": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java $", + "description": "Update handler that efficiently directly updates the on-disk main lucene index", + "version": "1.0", + "class": "org.apache.solr.update.DirectUpdateHandler2" + } + }, + "CACHE", + { + "fieldCache": { + "stats": { + "insanity_count": 0, + "entries_count": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/search/SolrFieldCacheMBean.java $", + "description": "Provides introspection of the Lucene FieldCache, this is **NOT** a cache that is managed by Solr.", + "version": "1.0", + "class": "org.apache.solr.search.SolrFieldCacheMBean" + }, + "fieldValueCache": { + "stats": { + "cumulative_evictions": 0, + "cumulative_inserts": 0, + "cumulative_hitratio": "0.00", + "cumulative_hits": 0, + "lookups": 0, + "hits": 0, + "hitratio": "0.00", + "inserts": 0, + "evictions": 0, + "size": 0, + "warmupTime": 0, + "cumulative_lookups": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/search/FastLRUCache.java $", + "description": "Concurrent LRU Cache(maxSize=5120, initialSize=5120, minSize=4608, acceptableSize=4864, cleanupThread=false, autowarmCount=1024, regenerator=org.apache.solr.search.SolrIndexSearcher$1@40acdd5)", + "version": "1.0", + "class": "org.apache.solr.search.FastLRUCache" + }, + "documentCache": { + "stats": { + "cumulative_evictions": 0, + "cumulative_inserts": 5746, + "cumulative_hitratio": "0.99", + "cumulative_hits": 2405834, + "lookups": 3750, + "hits": 3733, + "hitratio": "0.99", + "inserts": 17, + "evictions": 0, + "size": 17, + "warmupTime": 0, + "cumulative_lookups": 2411580 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/search/FastLRUCache.java $", + "description": "Concurrent LRU Cache(maxSize=10240, initialSize=10240, minSize=9216, acceptableSize=9728, cleanupThread=false)", + "version": "1.0", + "class": "org.apache.solr.search.FastLRUCache" + }, + "queryResultCache": { + "stats": { + "cumulative_evictions": 0, + "cumulative_inserts": 2660, + "cumulative_hitratio": "0.99", + "cumulative_hits": 726607, + "lookups": 1206, + "hits": 1179, + "hitratio": "0.97", + "inserts": 27, + "evictions": 0, + "size": 27, + "warmupTime": 0, + "cumulative_lookups": 729510 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/search/FastLRUCache.java $", + "description": "Concurrent LRU Cache(maxSize=5120, initialSize=5120, minSize=4608, acceptableSize=4864, cleanupThread=false)", + "version": "1.0", + "class": "org.apache.solr.search.FastLRUCache" + }, + "filterCache": { + "stats": { + "cumulative_evictions": 0, + "cumulative_inserts": 14, + "cumulative_hitratio": 0, + "cumulative_hits": 55, + "lookups": 0, + "hits": 0, + "hitratio": "0.01", + "inserts": 0, + "evictions": 0, + "size": 0, + "warmupTime": 0, + "cumulative_lookups": 69 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/search/FastLRUCache.java $", + "description": "Concurrent LRU Cache(maxSize=2560, initialSize=2560, minSize=2304, acceptableSize=2432, cleanupThread=false)", + "version": "1.0", + "class": "org.apache.solr.search.FastLRUCache" + } + } + ], + "responseHeader": { + "QTime": 8, + "status": 0 + } +} +` + +const mBeansCore1Response = `{ + "solr-mbeans": [ + "CORE", + { + "core": { + "stats": { + "aliases": [ + "corename" + ], + "indexDir": "/srv/solr-corename/index.20160607000000124", + "refCount": 2, + "startTime": "2016-12-20T18:41:10.449Z", + "coreName": "core1" + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/core/SolrCore.java $", + "description": "SolrCore", + "version": "1.0", + "class": "core1" + }, + "Searcher@6f0833b2 main": { + "stats": { + "warmupTime": 0, + "registeredAt": "2017-01-14T12:00:00.209Z", + "openedAt": "2017-01-14T12:00:00.208Z", + "searcherName": "Searcher@6f0833b2 main", + "caching": true, + "numDocs": 7517488, + "maxDoc": 7620303, + "deletedDocs": 102815, + "reader": "StandardDirectoryReader(segments_20iv:267485:nrt _2849(4.3.1):C7517434/102330 _28e8(4.3.1):C7363/115 _28h0(4.3.1):C5430/77 _28kw(4.3.1):C5984 _28k2(4.3.1):C6510/12 _28g6(4.3.1):C4537/25 _28ha(4.3.1):C5529/25 _28i4(4.3.1):C5087/42 _28js(4.3.1):C5823/10 _28ix(4.3.1):C5627/18 _28kc(4.3.1):C6710/14 _28kl(4.3.1):C7179/10 _28hk(4.3.1):C5149/65 _28j7(4.3.1):C5643/28 _28ht(4.3.1):C5428/9 _28ji(4.3.1):C5150/15 _28gq(4.3.1):C4989/9 _28ie(4.3.1):C5460/8 _28io(4.3.1):C5165/3 _28kv(4.3.1):C51 _28kx(4.3.1):C55)", + "readerDir": "org.apache.lucene.store.MMapDirectory:org.apache.lucene.store.MMapDirectory@/srv/solr-core1/index.20160607000000124 lockFactory=org.apache.lucene.store.SingleInstanceLockFactory@646d42ce", + "indexVersion": 267485 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java $", + "description": "index searcher", + "version": "1.0", + "class": "org.apache.solr.search.SolrIndexSearcher" + }, + "searcher": { + "stats": { + "warmupTime": 0, + "registeredAt": "2017-01-14T12:00:00.209Z", + "openedAt": "2017-01-14T12:00:00.208Z", + "searcherName": "Searcher@6f0833b2 main", + "caching": true, + "numDocs": 7517488, + "maxDoc": 7620303, + "deletedDocs": 102815, + "reader": "StandardDirectoryReader(segments_20iv:267485:nrt _2849(4.3.1):C7517434/102330 _28e8(4.3.1):C7363/115 _28h0(4.3.1):C5430/77 _28kw(4.3.1):C5984 _28k2(4.3.1):C6510/12 _28g6(4.3.1):C4537/25 _28ha(4.3.1):C5529/25 _28i4(4.3.1):C5087/42 _28js(4.3.1):C5823/10 _28ix(4.3.1):C5627/18 _28kc(4.3.1):C6710/14 _28kl(4.3.1):C7179/10 _28hk(4.3.1):C5149/65 _28j7(4.3.1):C5643/28 _28ht(4.3.1):C5428/9 _28ji(4.3.1):C5150/15 _28gq(4.3.1):C4989/9 _28ie(4.3.1):C5460/8 _28io(4.3.1):C5165/3 _28kv(4.3.1):C51 _28kx(4.3.1):C55)", + "readerDir": "org.apache.lucene.store.MMapDirectory:org.apache.lucene.store.MMapDirectory@/srv/solr-core1/index.20160607000000124 lockFactory=org.apache.lucene.store.SingleInstanceLockFactory@646d42ce", + "indexVersion": 267485 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java $", + "description": "index searcher", + "version": "1.0", + "class": "org.apache.solr.search.SolrIndexSearcher" + } + }, + "QUERYHANDLER", + { + "org.apache.solr.handler.CSVRequestHandler": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270458, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/CSVRequestHandler.java $", + "description": "Add/Update multiple documents with CSV formatted rows", + "version": "4.3.1", + "class": "org.apache.solr.handler.CSVRequestHandler" + }, + "/admin/": { + "stats": null, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/admin/AdminHandlers.java $", + "description": "Register Standard Admin Handlers", + "version": "4.3.1", + "class": "org.apache.solr.handler.admin.AdminHandlers" + }, + "/admin/mbeans": { + "stats": { + "999thPcRequestTime": 127.79069480400044, + "99thPcRequestTime": 9.033666420000003, + "95thPcRequestTime": 5.586449799999999, + "75thPcRequestTime": 4.68247075, + "medianRequestTime": 0.03985, + "avgTimePerRequest": 1.5857040673599807, + "handlerStart": 1482259270585, + "requests": 230969, + "errors": 0, + "timeouts": 0, + "totalTime": 366246.89703, + "avgRequestsPerSecond": 0.09671315555928528, + "5minRateReqsPerSecond": 0.545082835587804, + "15minRateReqsPerSecond": 0.5414280756665533 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/admin/SolrInfoMBeanHandler.java $", + "description": "Get Info (and statistics) for registered SolrInfoMBeans", + "version": "4.3.1", + "class": "org.apache.solr.handler.admin.SolrInfoMBeanHandler" + }, + "/debug/dump": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270462, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/DumpRequestHandler.java $", + "description": "Dump handler (debug)", + "version": "4.3.1", + "class": "org.apache.solr.handler.DumpRequestHandler" + }, + "/admin/logging": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270585, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/admin/LoggingHandler.java $", + "description": "Logging Handler", + "version": "4.3.1", + "class": "org.apache.solr.handler.admin.LoggingHandler" + }, + "/admin/plugins": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270585, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/admin/PluginInfoHandler.java $", + "description": "Registry", + "version": "4.3.1", + "class": "org.apache.solr.handler.admin.PluginInfoHandler" + }, + "/admin/system": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270585, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java $", + "description": "Get System Info", + "version": "4.3.1", + "class": "org.apache.solr.handler.admin.SystemInfoHandler" + }, + "/select": { + "stats": { + "999thPcRequestTime": 0.518583, + "99thPcRequestTime": 0.518583, + "95thPcRequestTime": 0.518583, + "75thPcRequestTime": 0.518583, + "medianRequestTime": 0.518583, + "avgTimePerRequest": 0.518583, + "handlerStart": 1482259270455, + "requests": 1, + "errors": 1, + "timeouts": 0, + "totalTime": 0.518583, + "avgRequestsPerSecond": 4.187296521163843e-07, + "5minRateReqsPerSecond": 1.4821969375e-313, + "15minRateReqsPerSecond": 4.44659081257e-313 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java $", + "description": "Search using components: query,facet,mlt,highlight,stats,spellcheck,debug,", + "version": "4.3.1", + "class": "org.apache.solr.handler.component.SearchHandler" + }, + "/tvrh": { + "stats": { + "note": "not initialized yet" + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/core/RequestHandlers.java $", + "description": "Lazy[solr.SearchHandler]", + "version": null, + "class": "Lazy[solr.SearchHandler]" + }, + "org.apache.solr.handler.component.SearchHandler": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270455, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java $", + "description": "Search using components: query,facet,mlt,highlight,stats,debug,", + "version": "4.3.1", + "class": "org.apache.solr.handler.component.SearchHandler" + }, + "/admin/luke": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270585, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "docs": [ + "http://wiki.apache.org/solr/LukeRequestHandler" + ], + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java $", + "description": "Lucene Index Browser. Inspired and modeled after Luke: http://www.getopt.org/luke/", + "version": "4.3.1", + "class": "org.apache.solr.handler.admin.LukeRequestHandler" + }, + "/update/json": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270457, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/JsonUpdateRequestHandler.java $", + "description": "Add documents with JSON", + "version": "4.3.1", + "class": "org.apache.solr.handler.JsonUpdateRequestHandler" + }, + "org.apache.solr.handler.admin.AdminHandlers": { + "stats": null, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/admin/AdminHandlers.java $", + "description": "Register Standard Admin Handlers", + "version": "4.3.1", + "class": "org.apache.solr.handler.admin.AdminHandlers" + }, + "org.apache.solr.handler.ReplicationHandler": { + "stats": { + "lastCycleBytesDownloaded": "2578996", + "timesIndexReplicated": "468", + "timesFailed": "2", + "replicationFailedAt": "Fri Feb 12 00:00:00 UTC 2016", + "indexReplicatedAt": "Sat Jan 14 12:00:00 UTC 2017", + "previousCycleTimeInSeconds": "0", + "isReplicating": "false", + "isPollingDisabled": "false", + "pollInterval": "12:00:00", + "masterUrl": "http://solr-s1:8983/solr/core1", + "isSlave": "true", + "isMaster": "false", + "indexPath": "/srv/solr-core1/index.20160607000000124", + "generation": 93991, + "15minRateReqsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "avgRequestsPerSecond": 0, + "totalTime": 0, + "timeouts": 0, + "errors": 0, + "requests": 0, + "handlerStart": 1482259270463, + "avgTimePerRequest": 0, + "medianRequestTime": 0, + "75thPcRequestTime": 0, + "95thPcRequestTime": 0, + "99thPcRequestTime": 0, + "999thPcRequestTime": 0, + "indexSize": "1.66 GB", + "indexVersion": 1484389807419 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java $", + "description": "ReplicationHandler provides replication of index and configuration files from Master to Slaves", + "version": "4.3.1", + "class": "org.apache.solr.handler.ReplicationHandler" + }, + "org.apache.solr.handler.JsonUpdateRequestHandler": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270457, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/JsonUpdateRequestHandler.java $", + "description": "Add documents with JSON", + "version": "4.3.1", + "class": "org.apache.solr.handler.JsonUpdateRequestHandler" + }, + "org.apache.solr.handler.DumpRequestHandler": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270462, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/DumpRequestHandler.java $", + "description": "Dump handler (debug)", + "version": "4.3.1", + "class": "org.apache.solr.handler.DumpRequestHandler" + }, + "org.apache.solr.handler.RealTimeGetHandler": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270456, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/RealTimeGetHandler.java $", + "description": "The realtime get handler", + "version": "4.3.1", + "class": "org.apache.solr.handler.RealTimeGetHandler" + }, + "/get": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270456, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/RealTimeGetHandler.java $", + "description": "The realtime get handler", + "version": "4.3.1", + "class": "org.apache.solr.handler.RealTimeGetHandler" + }, + "/admin/properties": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270585, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/admin/PropertiesRequestHandler.java $", + "description": "Get System Properties", + "version": "4.3.1", + "class": "org.apache.solr.handler.admin.PropertiesRequestHandler" + }, + "/query": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270455, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java $", + "description": "Search using components: query,facet,mlt,highlight,stats,debug,", + "version": "4.3.1", + "class": "org.apache.solr.handler.component.SearchHandler" + }, + "/admin/threads": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270585, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/admin/ThreadDumpHandler.java $", + "description": "Thread Dump", + "version": "4.3.1", + "class": "org.apache.solr.handler.admin.ThreadDumpHandler" + }, + "/analysis/field": { + "stats": { + "note": "not initialized yet" + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/core/RequestHandlers.java $", + "description": "Lazy[solr.FieldAnalysisRequestHandler]", + "version": null, + "class": "Lazy[solr.FieldAnalysisRequestHandler]" + }, + "org.apache.solr.handler.PingRequestHandler": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270461, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/PingRequestHandler.java $", + "description": "Reports application health to a load-balancer", + "version": "4.3.1", + "class": "org.apache.solr.handler.PingRequestHandler" + }, + "/analysis/document": { + "stats": { + "note": "not initialized yet" + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/core/RequestHandlers.java $", + "description": "Lazy[solr.DocumentAnalysisRequestHandler]", + "version": null, + "class": "Lazy[solr.DocumentAnalysisRequestHandler]" + }, + "/spell": { + "stats": { + "note": "not initialized yet" + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/core/RequestHandlers.java $", + "description": "Lazy[solr.SearchHandler]", + "version": null, + "class": "Lazy[solr.SearchHandler]" + }, + "/update/csv": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270458, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/CSVRequestHandler.java $", + "description": "Add/Update multiple documents with CSV formatted rows", + "version": "4.3.1", + "class": "org.apache.solr.handler.CSVRequestHandler" + }, + "org.apache.solr.handler.UpdateRequestHandler": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270457, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/UpdateRequestHandler.java $", + "description": "Add documents using XML (with XSLT), CSV, JSON, or javabin", + "version": "4.3.1", + "class": "org.apache.solr.handler.UpdateRequestHandler" + }, + "/replication": { + "stats": { + "lastCycleBytesDownloaded": "2578996", + "timesIndexReplicated": "468", + "timesFailed": "2", + "replicationFailedAt": "Fri Feb 12 00:00:00 UTC 2016", + "indexReplicatedAt": "Sat Jan 14 12:00:00 UTC 2017", + "previousCycleTimeInSeconds": "0", + "isReplicating": "false", + "isPollingDisabled": "false", + "pollInterval": "12:00:00", + "masterUrl": "http://solr-s1:8983/solr/core1", + "isSlave": "true", + "isMaster": "false", + "indexPath": "/srv/solr-core1/index.20160607000000124", + "generation": 93991, + "15minRateReqsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "avgRequestsPerSecond": 0, + "totalTime": 0, + "timeouts": 0, + "errors": 0, + "requests": 0, + "handlerStart": 1482259270463, + "avgTimePerRequest": 0, + "medianRequestTime": 0, + "75thPcRequestTime": 0, + "95thPcRequestTime": 0, + "99thPcRequestTime": 0, + "999thPcRequestTime": 0, + "indexSize": "1.66 GB", + "indexVersion": 1484389807419 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java $", + "description": "ReplicationHandler provides replication of index and configuration files from Master to Slaves", + "version": "4.3.1", + "class": "org.apache.solr.handler.ReplicationHandler" + }, + "/admin/ping": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270461, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/PingRequestHandler.java $", + "description": "Reports application health to a load-balancer", + "version": "4.3.1", + "class": "org.apache.solr.handler.PingRequestHandler" + }, + "/update": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270457, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/UpdateRequestHandler.java $", + "description": "Add documents using XML (with XSLT), CSV, JSON, or javabin", + "version": "4.3.1", + "class": "org.apache.solr.handler.UpdateRequestHandler" + }, + "/terms": { + "stats": { + "note": "not initialized yet" + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/core/RequestHandlers.java $", + "description": "Lazy[solr.SearchHandler]", + "version": null, + "class": "Lazy[solr.SearchHandler]" + }, + "/admin/file": { + "stats": { + "999thPcRequestTime": 0, + "99thPcRequestTime": 0, + "95thPcRequestTime": 0, + "75thPcRequestTime": 0, + "medianRequestTime": 0, + "avgTimePerRequest": 0, + "handlerStart": 1482259270585, + "requests": 0, + "errors": 0, + "timeouts": 0, + "totalTime": 0, + "avgRequestsPerSecond": 0, + "5minRateReqsPerSecond": 0, + "15minRateReqsPerSecond": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/handler/admin/ShowFileRequestHandler.java $", + "description": "Admin Get File -- view config files directly", + "version": "4.3.1", + "class": "org.apache.solr.handler.admin.ShowFileRequestHandler" + }, + "/update/extract": { + "stats": { + "note": "not initialized yet" + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/core/RequestHandlers.java $", + "description": "Lazy[solr.extraction.ExtractingRequestHandler]", + "version": null, + "class": "Lazy[solr.extraction.ExtractingRequestHandler]" + } + }, + "UPDATEHANDLER", + { + "updateHandler": { + "stats": { + "cumulative_errors": 0, + "expungeDeletes": 0, + "rollbacks": 0, + "optimizes": 0, + "soft autocommits": 0, + "autocommits": 0, + "autocommit maxTime": "900ms", + "autocommit maxDocs": 500, + "commits": 0, + "docsPending": 0, + "adds": 0, + "deletesById": 0, + "deletesByQuery": 0, + "errors": 0, + "cumulative_adds": 0, + "cumulative_deletesById": 0, + "cumulative_deletesByQuery": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java $", + "description": "Update handler that efficiently directly updates the on-disk main lucene index", + "version": "1.0", + "class": "org.apache.solr.update.DirectUpdateHandler2" + } + }, + "CACHE", + { + "fieldCache": { + "stats": { + "insanity_count": 0, + "entries_count": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/search/SolrFieldCacheMBean.java $", + "description": "Provides introspection of the Lucene FieldCache, this is **NOT** a cache that is managed by Solr.", + "version": "1.0", + "class": "org.apache.solr.search.SolrFieldCacheMBean" + }, + "fieldValueCache": { + "stats": { + "cumulative_evictions": 0, + "cumulative_inserts": 0, + "cumulative_hitratio": "0.00", + "cumulative_hits": 0, + "lookups": 0, + "hits": 0, + "hitratio": "0.00", + "inserts": 0, + "evictions": 0, + "size": 0, + "warmupTime": 0, + "cumulative_lookups": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/search/FastLRUCache.java $", + "description": "Concurrent LRU Cache(maxSize=4096, initialSize=4096, minSize=3686, acceptableSize=3891, cleanupThread=false, autowarmCount=128, regenerator=org.apache.solr.search.SolrIndexSearcher$1@58c2e3e9)", + "version": "1.0", + "class": "org.apache.solr.search.FastLRUCache" + }, + "documentCache": { + "stats": { + "cumulative_evictions": 0, + "cumulative_inserts": 0, + "cumulative_hitratio": "0.00", + "cumulative_hits": 0, + "lookups": 0, + "hits": 0, + "hitratio": "0.00", + "inserts": 0, + "evictions": 0, + "size": 0, + "warmupTime": 0, + "cumulative_lookups": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/search/FastLRUCache.java $", + "description": "Concurrent LRU Cache(maxSize=32768, initialSize=32768, minSize=29491, acceptableSize=31129, cleanupThread=false)", + "version": "1.0", + "class": "org.apache.solr.search.FastLRUCache" + }, + "queryResultCache": { + "stats": { + "cumulative_evictions": 0, + "cumulative_inserts": 0, + "cumulative_hitratio": "0.00", + "cumulative_hits": 0, + "lookups": 0, + "hits": 0, + "hitratio": "0.00", + "inserts": 0, + "evictions": 0, + "size": 0, + "warmupTime": 0, + "cumulative_lookups": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/search/FastLRUCache.java $", + "description": "Concurrent LRU Cache(maxSize=4096, initialSize=4096, minSize=3686, acceptableSize=3891, cleanupThread=false)", + "version": "1.0", + "class": "org.apache.solr.search.FastLRUCache" + }, + "filterCache": { + "stats": { + "cumulative_evictions": 0, + "cumulative_inserts": 0, + "cumulative_hitratio": "0.00", + "cumulative_hits": 0, + "lookups": 0, + "hits": 0, + "hitratio": "0.00", + "inserts": 0, + "evictions": 0, + "size": 0, + "warmupTime": 0, + "cumulative_lookups": 0 + }, + "src": "$URL: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_4_3/solr/core/src/java/org/apache/solr/search/FastLRUCache.java $", + "description": "Concurrent LRU Cache(maxSize=512, initialSize=512, minSize=460, acceptableSize=486, cleanupThread=false)", + "version": "1.0", + "class": "org.apache.solr.search.FastLRUCache" + } + } + ], + "responseHeader": { + "QTime": 5, + "status": 0 + } +} +` + +var solrAdminMainCoreStatusExpected = map[string]interface{}{ + "num_docs": int64(168943425), + "max_docs": int64(169562700), + "deleted_docs": int64(619275), + "size_in_bytes": int64(247497521642), +} + +var solrAdminCore1StatusExpected = map[string]interface{}{ + "num_docs": int64(7517488), + "max_docs": int64(7620303), + "deleted_docs": int64(102815), + "size_in_bytes": int64(1784635686), +} + +var solrCoreExpected = map[string]interface{}{ + "num_docs": int64(168962621), + "max_docs": int64(169647870), + "deleted_docs": int64(685249), +} + +var solrQueryHandlerExpected = map[string]interface{}{ + "15min_rate_reqs_per_second": float64(0), + "5min_rate_reqs_per_second": float64(0), + "75th_pc_request_time": float64(0), + "95th_pc_request_time": float64(0), + "999th_pc_request_time": float64(0), + "99th_pc_request_time": float64(0), + "avg_requests_per_second": float64(0), + "avg_time_per_request": float64(0), + "errors": int64(0), + "handler_start": int64(1482259270810), + "median_request_time": float64(0), + "requests": int64(0), + "timeouts": int64(0), + "total_time": float64(0), +} + +var solrUpdateHandlerExpected = map[string]interface{}{ + "adds": int64(0), + "autocommit_max_docs": int64(500), + "autocommit_max_time": int64(900), + "autocommits": int64(0), + "commits": int64(0), + "cumulative_adds": int64(0), + "cumulative_deletes_by_id": int64(0), + "cumulative_deletes_by_query": int64(0), + "cumulative_errors": int64(0), + "deletes_by_id": int64(0), + "deletes_by_query": int64(0), + "docs_pending": int64(0), + "errors": int64(0), + "expunge_deletes": int64(0), + "optimizes": int64(0), + "rollbacks": int64(0), + "soft_autocommits": int64(0), +} + +var solrCacheExpected = map[string]interface{}{ + "cumulative_evictions": int64(0), + "cumulative_hitratio": float64(0), + "cumulative_hits": int64(55), + "cumulative_inserts": int64(14), + "cumulative_lookups": int64(69), + "evictions": int64(0), + "hitratio": float64(0.01), + "hits": int64(0), + "inserts": int64(0), + "lookups": int64(0), + "size": int64(0), + "warmup_time": int64(0), +}