add two more metrics

This commit is contained in:
Martin Ptáček
2023-07-30 10:35:14 +02:00
parent 578c8b5e3e
commit c532bf1d8b
4 changed files with 64 additions and 6 deletions

View File

@ -91,6 +91,10 @@ $ ansible-playbook ansible_playbook.yaml --tags config
`android_sensor_rotation_vector_cosinus_theta_half` - Data from the Android Rotation Vector sensor, how is the device rotated, without a unit `android_sensor_rotation_vector_cosinus_theta_half` - Data from the Android Rotation Vector sensor, how is the device rotated, without a unit
`android_sensor_rotation_vector_accuracy_radians` - Android rotation vector sensor accuracy in radians `android_sensor_rotation_vector_accuracy_radians` - Android rotation vector sensor accuracy in radians
### Android network
`android_cellular_network_connected` - Whether cellular network is connected
`android_wifi_connected` - Whether WiFi is connected
### Miscellaneous ### Miscellaneous
`android_battery_charge_ratio` - Current battery charge `android_battery_charge_ratio` - Current battery charge

View File

@ -7,11 +7,11 @@
<deviceKey> <deviceKey>
<Key> <Key>
<type value="VIRTUAL_DEVICE_PATH" /> <type value="VIRTUAL_DEVICE_PATH" />
<value value="$USER_HOME$/.android/avd/new4_device.avd" /> <value value="$USER_HOME$/.var/app/com.google.AndroidStudio/config/.android/avd/new_device.avd" />
</Key> </Key>
</deviceKey> </deviceKey>
</Target> </Target>
</targetSelectedWithDropDown> </targetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2023-07-29T19:05:07.449016617Z" /> <timeTargetWasSelectedWithDropDown value="2023-07-30T08:06:01.829441584Z" />
</component> </component>
</project> </project>

View File

@ -91,11 +91,39 @@ class AndroidCustomExporter(private val metricEngine: MetricsEngine) : Collector
} }
private fun collectHasWiFiConnection(mfs : MutableList<MetricFamilySamples>){ private fun collectHasWiFiConnection(mfs : MutableList<MetricFamilySamples>){
metricEngine.getHasWiFiConnected()?.let {
val result : Double = if (it) {
1.0
}else{
0.0
}
val gauge = GaugeMetricFamily(
"android_wifi_connected",
"Whether WiFi is connected",
listOf()
)
gauge.addMetric(listOf(), result)
mfs.add(gauge)
}
} }
private fun collectHasCellularConnection(mfs : MutableList<MetricFamilySamples>){ private fun collectHasCellularConnection(mfs : MutableList<MetricFamilySamples>){
metricEngine.getHasCellularConnected()?.let {
val result : Double = if (it) {
1.0
}else{
0.0
}
val gauge = GaugeMetricFamily(
"android_cellular_network_connected",
"Whether cellular network is connected",
listOf()
)
gauge.addMetric(listOf(), result)
mfs.add(gauge)
}
} }
private fun collectAndroidInfo(mfs : MutableList<MetricFamilySamples>){ private fun collectAndroidInfo(mfs : MutableList<MetricFamilySamples>){

View File

@ -9,6 +9,8 @@ import android.hardware.Sensor
import android.hardware.SensorManager import android.hardware.SensorManager
import android.hardware.SensorEvent import android.hardware.SensorEvent
import android.hardware.SensorEventListener import android.hardware.SensorEventListener
import android.net.ConnectivityManager
import android.net.NetworkCapabilities
import android.os.BatteryManager import android.os.BatteryManager
import android.os.Build import android.os.Build
import android.os.CpuUsageInfo import android.os.CpuUsageInfo
@ -240,11 +242,35 @@ class MetricsEngine(private val context: Context) : SensorEventListener {
return Build.MANUFACTURER return Build.MANUFACTURER
} }
fun getHasCellularConnected() : Boolean { fun getHasCellularConnected() : Boolean? {
TODO() val connectivityManager = context
.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager?
return if (connectivityManager != null){
val network = connectivityManager.activeNetwork
val cap = connectivityManager.getNetworkCapabilities(network)
cap != null && cap.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)
}else{
null
}
} }
fun getHasWiFiConnected() : Boolean { fun getHasWiFiConnected() : Boolean? {
TODO() val connectivityManager = context
.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager?
return if (connectivityManager != null){
val network = connectivityManager.activeNetwork
val cap = connectivityManager.getNetworkCapabilities(network)
cap != null && (cap.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) || cap.hasTransport(NetworkCapabilities.TRANSPORT_WIFI_AWARE))
}else{
null
}
} }
} }