Skip to content
This repository was archived by the owner on Dec 23, 2017. It is now read-only.

Commit 4293bf9

Browse files
committed
add additional stats for searches, alert count and alarmcallback usage
1 parent 048e3fb commit 4293bf9

File tree

3 files changed

+69
-0
lines changed

3 files changed

+69
-0
lines changed

src/main/java/org/graylog/plugins/usagestatistics/collectors/NodeCollector.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,11 @@
3535
import org.graylog.plugins.usagestatistics.dto.NodeStats;
3636
import org.graylog.plugins.usagestatistics.dto.Os;
3737
import org.graylog.plugins.usagestatistics.dto.PluginInfo;
38+
import org.graylog.plugins.usagestatistics.dto.SearchStats;
3839
import org.graylog.plugins.usagestatistics.dto.SessionStats;
3940
import org.graylog.plugins.usagestatistics.dto.ThroughputStats;
4041
import org.graylog.plugins.usagestatistics.util.MetricUtils;
42+
import org.graylog2.indexer.elasticsearch.GlobalTimeoutClient;
4143
import org.graylog2.inputs.Input;
4244
import org.graylog2.inputs.InputService;
4345
import org.graylog2.plugin.PluginMetaData;
@@ -46,6 +48,10 @@
4648
import org.graylog2.plugin.cluster.ClusterConfigService;
4749
import org.graylog2.plugin.cluster.ClusterId;
4850
import org.graylog2.plugin.system.NodeId;
51+
import org.graylog2.rest.resources.search.AbsoluteSearchResource;
52+
import org.graylog2.rest.resources.search.KeywordSearchResource;
53+
import org.graylog2.rest.resources.search.RelativeSearchResource;
54+
import org.graylog2.rest.resources.search.SearchResource;
4955
import org.graylog2.rest.resources.system.SessionsResource;
5056
import org.graylog2.security.realm.SessionAuthenticator;
5157
import org.graylog2.shared.system.stats.StatsService;
@@ -65,6 +71,7 @@
6571
import static com.google.common.base.Strings.isNullOrEmpty;
6672
import static org.graylog.plugins.usagestatistics.util.MetricUtils.safeGetCounter;
6773
import static org.graylog.plugins.usagestatistics.util.MetricUtils.safeGetMeter;
74+
import static org.graylog.plugins.usagestatistics.util.MetricUtils.safeGetTimer;
6875

6976
@Singleton
7077
public class NodeCollector {
@@ -274,6 +281,14 @@ private NodeStats buildNodeStats() {
274281
safeGetMeter(metricRegistry, name(SessionsResource.class, "terminateSession")).getCount()
275282
);
276283

284+
final SearchStats searchStats = SearchStats.create(
285+
safeGetCounter(metricRegistry, name(SearchResource.class, "empty-search-results")).getCount(),
286+
safeGetTimer(metricRegistry, name(AbsoluteSearchResource.class, "searchAbsolute")).getCount(),
287+
safeGetTimer(metricRegistry, name(KeywordSearchResource.class, "searchKeyword")).getCount(),
288+
safeGetTimer(metricRegistry, name(RelativeSearchResource.class, "searchRelative")).getCount(),
289+
safeGetCounter(metricRegistry, name(GlobalTimeoutClient.class, "search-requests")).getCount()
290+
);
291+
277292
return NodeStats.create(
278293
uptime,
279294
inputService.totalCountForNode(nodeId.toString()),
@@ -282,6 +297,7 @@ private NodeStats buildNodeStats() {
282297
journalStats,
283298
searchTimings,
284299
searchRanges,
300+
searchStats,
285301
sessionStats
286302
);
287303
}

src/main/java/org/graylog/plugins/usagestatistics/dto/NodeStats.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public static NodeStats create(long uptime,
2929
JournalStats journalStats,
3030
Histogram searchTimings,
3131
Histogram searchRanges,
32+
SearchStats searchStats,
3233
SessionStats sessionStats) {
3334
return new AutoValue_NodeStats(uptime,
3435
inputCount,
@@ -37,6 +38,7 @@ public static NodeStats create(long uptime,
3738
journalStats,
3839
searchTimings,
3940
searchRanges,
41+
searchStats,
4042
sessionStats);
4143
}
4244

@@ -61,6 +63,9 @@ public static NodeStats create(long uptime,
6163
@JsonProperty
6264
public abstract Histogram searchRanges();
6365

66+
@JsonProperty
67+
public abstract SearchStats searchStats();
68+
6469
@JsonProperty
6570
public abstract SessionStats sessionStats();
6671
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/**
2+
* Copyright (C) 2015 Graylog, Inc. ([email protected])
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
package org.graylog.plugins.usagestatistics.dto;
17+
18+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
19+
import com.fasterxml.jackson.annotation.JsonProperty;
20+
import com.google.auto.value.AutoValue;
21+
22+
@JsonAutoDetect
23+
@AutoValue
24+
public abstract class SearchStats {
25+
26+
public static SearchStats create(long emptySearches,
27+
long absoluteSearches,
28+
long keywordSearches,
29+
long relativeSearches,
30+
long totalSearches) {
31+
return new AutoValue_SearchStats(emptySearches, absoluteSearches, keywordSearches, relativeSearches, totalSearches);
32+
}
33+
34+
@JsonProperty
35+
public abstract long emptySearches();
36+
37+
@JsonProperty
38+
public abstract long absoluteSearches();
39+
40+
@JsonProperty
41+
public abstract long keywordSearches();
42+
43+
@JsonProperty
44+
public abstract long relativeSearches();
45+
46+
@JsonProperty
47+
public abstract long totalSearches();
48+
}

0 commit comments

Comments
 (0)