|
|
@@ -1,6 +1,5 @@
|
|
|
package info.knacki.prometheusandroidexporter.collector;
|
|
|
|
|
|
-import android.content.BroadcastReceiver;
|
|
|
import android.content.Context;
|
|
|
import android.content.Intent;
|
|
|
import android.content.IntentFilter;
|
|
|
@@ -9,16 +8,14 @@ import android.os.BatteryManager;
|
|
|
import java.util.ArrayDeque;
|
|
|
import java.util.Collection;
|
|
|
|
|
|
-import info.knacki.prometheusandroidexporter.CollectorValue;
|
|
|
+import info.knacki.prometheusandroidexporter.CollectorType;
|
|
|
+import info.knacki.prometheusandroidexporter.CollectorType.CollectorValue;
|
|
|
import info.knacki.prometheusandroidexporter.ICollector;
|
|
|
|
|
|
public class PowerCollector implements ICollector {
|
|
|
- private final CollectorValue batteryLevelCollector = new CollectorValue("battery_level", "Battery level", CollectorValue.Type.COUNTER);
|
|
|
- private final CollectorValue batteryStatusCollector = new CollectorValue("battery_status", "Battery level", CollectorValue.Type.STRING);
|
|
|
- private final CollectorValue batteryPluggedCollector = new CollectorValue("battery_plugged", "Battery plugged", CollectorValue.Type.STRING);
|
|
|
- private final CollectorValue batteryHealthCollector = new CollectorValue("battery_health", "Battery health", CollectorValue.Type.STRING);
|
|
|
- private final CollectorValue batteryTemperatureCollector = new CollectorValue("battery_temp", "Battery temperature", CollectorValue.Type.COUNTER);
|
|
|
- private final CollectorValue batteryVoltageCollector = new CollectorValue("battery_voltage", "Battery voltage (mV)", CollectorValue.Type.COUNTER);
|
|
|
+ private final CollectorType batteryLevelCollector = new CollectorType("battery_level", "Battery level", CollectorType.Type.GAUGE);
|
|
|
+ private final CollectorType batteryTemperatureCollector = new CollectorType("battery_temp", "Battery temperature", CollectorType.Type.GAUGE);
|
|
|
+ private final CollectorType batteryVoltageCollector = new CollectorType("battery_voltage", "Battery voltage (mV)", CollectorType.Type.GAUGE);
|
|
|
|
|
|
private double GetBatteryLevel(Intent batteryStatus) {
|
|
|
double batteryMax = batteryStatus != null ? batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, 0) : 0;
|
|
|
@@ -77,31 +74,16 @@ public class PowerCollector implements ICollector {
|
|
|
}
|
|
|
|
|
|
private CollectorValue BatteryLevel(Intent batteryStatus) {
|
|
|
- CollectorValue val = new CollectorValue(batteryLevelCollector);
|
|
|
+ CollectorValue val = batteryLevelCollector.new CollectorValue();
|
|
|
val.SetValue(GetBatteryLevel(batteryStatus));
|
|
|
- return val;
|
|
|
- }
|
|
|
-
|
|
|
- private CollectorValue BatteryStatus(Intent batteryStatus) {
|
|
|
- CollectorValue val = new CollectorValue(batteryStatusCollector);
|
|
|
- val.SetValue(GetBatteryStatus(batteryStatus));
|
|
|
- return val;
|
|
|
- }
|
|
|
-
|
|
|
- private CollectorValue BatteryPlugged(Intent batteryStatus) {
|
|
|
- CollectorValue val = new CollectorValue(batteryPluggedCollector);
|
|
|
- val.SetValue(GetBatteryPlugged(batteryStatus));
|
|
|
- return val;
|
|
|
- }
|
|
|
-
|
|
|
- private CollectorValue BatteryHealth(Intent batteryStatus) {
|
|
|
- CollectorValue val = new CollectorValue(batteryHealthCollector);
|
|
|
- val.SetValue(GetBatteryHealth(batteryStatus));
|
|
|
+ val.AddParameter("Status", GetBatteryStatus(batteryStatus));
|
|
|
+ val.AddParameter("Plugged", GetBatteryPlugged(batteryStatus));
|
|
|
+ val.AddParameter("Health", GetBatteryHealth(batteryStatus));
|
|
|
return val;
|
|
|
}
|
|
|
|
|
|
private CollectorValue BatteryTemperature(Intent battery) {
|
|
|
- CollectorValue val = new CollectorValue(batteryTemperatureCollector);
|
|
|
+ CollectorValue val = batteryTemperatureCollector.new CollectorValue();
|
|
|
final int error = -100000;
|
|
|
int value = battery == null ? error : battery.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, error);
|
|
|
val.SetValue(value == error ? Double.NaN : ((double) value) / 10);
|
|
|
@@ -109,7 +91,7 @@ public class PowerCollector implements ICollector {
|
|
|
}
|
|
|
|
|
|
private CollectorValue BatteryVoltage(Intent battery) {
|
|
|
- CollectorValue val = new CollectorValue(batteryVoltageCollector);
|
|
|
+ CollectorValue val = batteryVoltageCollector.new CollectorValue();
|
|
|
final int error = -100000;
|
|
|
int value = battery == null ? error : battery.getIntExtra(BatteryManager.EXTRA_VOLTAGE, error);
|
|
|
val.SetValue(value == error ? Double.NaN : ((double) value) / 10);
|
|
|
@@ -121,9 +103,6 @@ public class PowerCollector implements ICollector {
|
|
|
Intent batteryStatus = ctx.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
|
|
|
ArrayDeque<CollectorValue> result = new ArrayDeque<>();
|
|
|
result.add(BatteryLevel(batteryStatus));
|
|
|
- result.add(BatteryStatus(batteryStatus));
|
|
|
- result.add(BatteryPlugged(batteryStatus));
|
|
|
- result.add(BatteryHealth(batteryStatus));
|
|
|
result.add(BatteryTemperature(batteryStatus));
|
|
|
result.add(BatteryVoltage(batteryStatus));
|
|
|
// TODO BatteryManager.computeChargeTimeRemaining Time before battery get fully charged, msec, API >= 28
|