1 /*
2  * Copyright 2011-2020 Amazon Technologies, Inc.
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://aws.amazon.com/apache2.0
9  *
10  * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
11  * OR CONDITIONS OF ANY KIND, either express or implied. See the
12  * License for the specific language governing permissions and
13  * limitations under the License.
14  */

15 package com.amazonaws.metrics;
16
17 import java.io.FileNotFoundException;
18 import java.io.IOException;
19
20 import com.amazonaws.regions.Regions;
21
22 /**
23  *  Administration of AwsSdkMetrics as an MBean.
24  */

25 public class MetricAdmin implements MetricAdminMBean {
26     @Override
27     public boolean enableDefaultMetrics() {
28         return AwsSdkMetrics.enableDefaultMetrics();
29     }
30     @Override
31     public void disableMetrics() {
32         AwsSdkMetrics.disableMetrics();
33     }
34     @Override
35     public String getRequestMetricCollector() {
36         MetricCollector mc = AwsSdkMetrics.getInternalMetricCollector();
37         RequestMetricCollector rmc = mc == null ? null : mc.getRequestMetricCollector();
38         return mc == null || rmc == RequestMetricCollector.NONE
39              ? "NONE"
40              : rmc.getClass().getName()
41              ;
42     }
43     @Override
44     public String getServiceMetricCollector() {
45         MetricCollector mc = AwsSdkMetrics.getInternalMetricCollector();
46         ServiceMetricCollector smc = mc == null ? null : mc.getServiceMetricCollector();
47         return mc == null || smc == ServiceMetricCollector.NONE
48              ? "NONE"
49              : smc.getClass().getName()
50              ;
51     }
52     @Override
53     public boolean isMetricsEnabled() {
54         return AwsSdkMetrics.isMetricsEnabled();
55     }
56
57     @Override
58     public boolean isMachineMetricsExcluded() {
59         return AwsSdkMetrics.isMachineMetricExcluded();
60     }
61     @Override
62     public void setMachineMetricsExcluded(boolean excludeJvmMetrics) {
63         AwsSdkMetrics.setMachineMetricsExcluded(excludeJvmMetrics);
64     }
65     @Override
66     public String getRegion() {
67         return AwsSdkMetrics.getRegionName();
68     }
69     @Override
70     public void setRegion(String region) {
71         AwsSdkMetrics.setRegion(region);
72     }
73     @Override
74     public Integer getMetricQueueSize() {
75         return AwsSdkMetrics.getMetricQueueSize();
76     }
77     @Override
78     public void setMetricQueueSize(Integer metricQueueSize) {
79         AwsSdkMetrics.setMetricQueueSize(metricQueueSize);
80
81     }
82     @Override
83     public Integer getQueuePollTimeoutMilli() {
84         Long queuePollTimeoutMilli = AwsSdkMetrics.getQueuePollTimeoutMilli();
85         return queuePollTimeoutMilli == null ? null : queuePollTimeoutMilli.intValue();
86     }
87     @Override
88     public void setQueuePollTimeoutMilli(Integer timeoutMilli) {
89         AwsSdkMetrics.setQueuePollTimeoutMilli(timeoutMilli == null ? null : timeoutMilli.longValue());
90     }
91     @Override
92     public String getMetricNameSpace() {
93         return AwsSdkMetrics.getMetricNameSpace();
94     }
95     @Override
96     public void setMetricNameSpace(String metricNameSpace) {
97         AwsSdkMetrics.setMetricNameSpace(metricNameSpace);
98     }
99
100     @Override
101     public boolean isPerHostMetricsIncluded() {
102         return AwsSdkMetrics.isPerHostMetricIncluded();
103     }
104     @Override
105     public void setPerHostMetricsIncluded(boolean includePerHostMetrics) {
106         AwsSdkMetrics.setPerHostMetricsIncluded(includePerHostMetrics);
107     }
108     @Override
109     public String getJvmMetricName() {
110         return AwsSdkMetrics.getJvmMetricName();
111     }
112     @Override
113     public void setJvmMetricName(String jvmMetricName) {
114         AwsSdkMetrics.setJvmMetricName(jvmMetricName);
115     }
116     @Override
117     public String getHostMetricName() {
118         return AwsSdkMetrics.getHostMetricName();
119     }
120     @Override
121     public void setHostMetricName(String hostMetricName) {
122         AwsSdkMetrics.setHostMetricName(hostMetricName);
123     }
124     @Override
125     public String getCredentialFile() {
126         return AwsSdkMetrics.getCredentialFile();
127     }
128
129     @Override
130     public void setCredentialFile(String filepath)
131             throws FileNotFoundException, IOException {
132         AwsSdkMetrics.setCredentialFile(filepath);
133     }
134     @Override
135     public boolean isSingleMetricNamespace() {
136         return AwsSdkMetrics.isSingleMetricNamespace();
137     }
138     @Override
139     public void setSingleMetricNamespace(boolean singleMetricNamespace) {
140         AwsSdkMetrics.setSingleMetricNamespace(singleMetricNamespace);
141     }
142 }
143