package tomcat import ( "fmt" "net/http" "net/http/httptest" "testing" "github.com/influxdata/telegraf/testutil" "github.com/stretchr/testify/require" ) var tomcatStatus8 = ` ` func TestHTTPTomcat8(t *testing.T) { ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) fmt.Fprintln(w, tomcatStatus8) })) defer ts.Close() tc := Tomcat{ URL: ts.URL, Username: "tomcat", Password: "s3cret", } var acc testutil.Accumulator err := tc.Gather(&acc) require.NoError(t, err) // tomcat_jvm_memory jvmMemoryFields := map[string]interface{}{ "free": int64(17909336), "total": int64(58195968), "max": int64(620756992), } acc.AssertContainsFields(t, "tomcat_jvm_memory", jvmMemoryFields) // tomcat_jvm_memorypool jvmMemoryPoolFields := map[string]interface{}{ "init": int64(22020096), "committed": int64(22020096), "max": int64(174063616), "used": int64(17533952), } jvmMemoryPoolTags := map[string]string{ "name": "PS Perm Gen", "type": "Non-heap memory", } acc.AssertContainsTaggedFields(t, "tomcat_jvm_memorypool", jvmMemoryPoolFields, jvmMemoryPoolTags) // tomcat_connector connectorFields := map[string]interface{}{ "max_threads": int64(200), "current_thread_count": int64(5), "current_threads_busy": int64(1), "max_time": int(68), "processing_time": int(88), "request_count": int(2), "error_count": int(1), "bytes_received": int64(0), "bytes_sent": int64(9286), } connectorTags := map[string]string{ "name": "http-apr-8080", } acc.AssertContainsTaggedFields(t, "tomcat_connector", connectorFields, connectorTags) } var tomcatStatus6 = ` ` func TestHTTPTomcat6(t *testing.T) { ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) fmt.Fprintln(w, tomcatStatus6) })) defer ts.Close() tc := Tomcat{ URL: ts.URL, Username: "tomcat", Password: "s3cret", } var acc testutil.Accumulator err := tc.Gather(&acc) require.NoError(t, err) // tomcat_jvm_memory jvmMemoryFields := map[string]interface{}{ "free": int64(1942681600), "total": int64(2040070144), "max": int64(2040070144), } acc.AssertContainsFields(t, "tomcat_jvm_memory", jvmMemoryFields) // tomcat_connector connectorFields := map[string]interface{}{ "bytes_received": int64(0), "bytes_sent": int64(550196), "current_thread_count": int64(2), "current_threads_busy": int64(2), "error_count": int(16), "max_threads": int64(150), "max_time": int(1005), "processing_time": int(2465), "request_count": int(436), } connectorTags := map[string]string{ "name": "http-8080", } acc.AssertContainsTaggedFields(t, "tomcat_connector", connectorFields, connectorTags) }