diff --git a/client/app/src/main/AndroidManifest.xml b/client/app/src/main/AndroidManifest.xml
index da88533..2b9ea94 100644
--- a/client/app/src/main/AndroidManifest.xml
+++ b/client/app/src/main/AndroidManifest.xml
@@ -4,6 +4,9 @@
+
+
+
context.registerReceiver(null, intFilter)
}
@@ -21,4 +27,43 @@ class MetricsEngine(private val context: Context) {
batteryPct ?: return -1.0f
return batteryPct
}
+
+ public fun batteryIsCharging(): Float {
+ TODO("aa")
+ }
+
+ public fun somethingTodo(): Float {
+ TODO("aa")
+ }
+
+
+
+//TODO
+ ///TYPE_ACCELEROMETER Yes Yes Yes Yes
+ //TYPE_AMBIENT_TEMPERATURE Yes n/a n/a n/a
+ //TYPE_GRAVITY Yes Yes n/a n/a
+ //TYPE_GYROSCOPE Yes Yes n/a1 n/a1
+ //TYPE_LIGHT Yes Yes Yes Yes
+ //TYPE_LINEAR_ACCELERATION Yes Yes n/a n/a
+ //TYPE_MAGNETIC_FIELD Yes Yes Yes Yes
+ //TYPE_ORIENTATION Yes2 Yes2 Yes2 Yes
+ //TYPE_PRESSURE Yes Yes n/a1 n/a1
+ //TYPE_PROXIMITY Yes Yes Yes Yes
+ //TYPE_RELATIVE_HUMIDITY Yes n/a n/a n/a
+ //TYPE_ROTATION_VECTOR Yes Yes n/a n/a
+ //TYPE_TEMPERATURE
+// - hardware metrics:
+// - basic hw sensors
+// - network availability
+// - 4G, 5G
+// - gps - glonass beidou ...
+// - battery, charging
+// node exporter metrics
+// - cpu
+// - ram
+// - scrape duration
+// - bluetooth - mac bluetooth
+// - nfc
+// - storage information
+// - system information - version .. device name, doba provozu
}
diff --git a/client/app/src/main/java/com/birdthedeveloper/prometheus/android/prometheus/android/exporter/worker/RemoteWriteSender.kt b/client/app/src/main/java/com/birdthedeveloper/prometheus/android/prometheus/android/exporter/worker/RemoteWriteSender.kt
index 34f6fc6..0be5a80 100644
--- a/client/app/src/main/java/com/birdthedeveloper/prometheus/android/prometheus/android/exporter/worker/RemoteWriteSender.kt
+++ b/client/app/src/main/java/com/birdthedeveloper/prometheus/android/prometheus/android/exporter/worker/RemoteWriteSender.kt
@@ -23,10 +23,10 @@ import java.lang.IndexOutOfBoundsException
private const val TAG: String = "REMOTE_WRITE_SENDER"
-// This class stores information about scrapes to PROM_SERVER and PUSHPROX
-// for purposes of scraping metrics on device and back-filling them later using remote write
-//
-// Only timestamps of successful scrapes are stored
+/// This class stores information about scrapes to PROM_SERVER and PUSHPROX
+/// for purposes of scraping metrics on device and back-filling them later using remote write
+///
+/// Only timestamps of successful scrapes are stored
internal class LastTimeRingBuffer(private val scrapeInterval: Int) {
private val buffer: Array = Array(hysteresisMemory) { 0 }
private var firstIndex: Int = -1
@@ -199,8 +199,7 @@ class RemoteWriteSender(private val config: RemoteWriteConfiguration) {
client = HttpClient()
try {
- //TODO test this being coroutine scope
- coroutineScope { //TODO this could be a problem
+ coroutineScope {
launch {
// check for outage in scrapes, save scrapes to storage
Log.d(TAG, "Launching scraper")
diff --git a/client/app/src/main/java/com/birdthedeveloper/prometheus/android/prometheus/android/exporter/worker/RemoteWriteSenderDbStorage.kt b/client/app/src/main/java/com/birdthedeveloper/prometheus/android/prometheus/android/exporter/worker/RemoteWriteSenderDbStorage.kt
index 103db8b..7f8f20e 100644
--- a/client/app/src/main/java/com/birdthedeveloper/prometheus/android/prometheus/android/exporter/worker/RemoteWriteSenderDbStorage.kt
+++ b/client/app/src/main/java/com/birdthedeveloper/prometheus/android/prometheus/android/exporter/worker/RemoteWriteSenderDbStorage.kt
@@ -1,113 +1,127 @@
package com.birdthedeveloper.prometheus.android.prometheus.android.exporter.worker
-import android.content.Context
-import androidx.room.Dao
-import androidx.room.Database
-import androidx.room.Entity
-import androidx.room.PrimaryKey
-import androidx.room.Query
-import androidx.room.Room
-import androidx.room.RoomDatabase
-import kotlinx.serialization.Serializable
-import kotlinx.serialization.json.Json
-import remote.write.RemoteWrite.TimeSeries
-
-/// Room is a relational database
-/// Contains the following tables:
-/// - Timeseries table:
-/// + labels : List sorted alphabetically and encoded in json
-/// - Sample table:
-/// + id
-/// + timestamp
-/// + value
-/// + Timeseries foreign key
-
-@Entity
-data class RoomTimeSeries (
- @PrimaryKey(autoGenerate = false)
- val labels : String
-)
-
-@Entity
-data class RoomSample(
- @PrimaryKey(autoGenerate = true)
- val id: Int = 0,
- val timeStamp : Long,
- val value : Double,
-)
-
-@Serializable
-data class TimeSeriesLabelList(
- val labels: List
-)
-
-@Database(
- entities = [RoomTimeSeries::class, RoomSample::class],
- version = 1
-)
-abstract class RemoteWriteDatabase: RoomDatabase() {
- abstract val dao: RoomDao
-}
-
-@Dao
-interface RoomDao {
- @Query("")//TODO
- fun insertOneTimeSeriesSample(){
-
- }
-
- @Query("") //TODO
- fun getNumberOfTimeSeriesSamples(number : Int){
-
- }
-
- @Query("") //TODO
- fun getTotalNumberOfSamples(){
-
- }
-
-}
-
-class RemoteWriteSenderDbStorage(getContext: () -> Context) : RemoteWriteSenderStorage(){
- companion object{
- const val dbName = "prometheus.db"
- }
-
- private val roomDb by lazy {
- Room.databaseBuilder(
- getContext(),
- RemoteWriteDatabase::class.java,
- dbName,
- ).build()
- }
-
- private fun encodeLabels(labelsList: List) : String{
- /// preserve the same order
- val sorted : List = labelsList.sortedBy { it.name }
- val timeSeriesLabelList = TimeSeriesLabelList(labels = sorted)
- return Json.encodeToString(TimeSeriesLabelList.serializer(), timeSeriesLabelList)
- }
-
- private fun decodeLabels(labels : String) : List {
- return Json.decodeFromString(labels).labels
- }
- override fun writeScrapedSample(metricsScrape: MetricsScrape) {
- TODO("Not yet implemented")
- }
-
- override fun getScrapedSamplesCompressedProtobuf(howMany: Int): ByteArray {
- TODO("Not yet implemented")
- }
-
- override fun removeNumberOfScrapedSamples(number: Int) {
- TODO("Not yet implemented")
- }
-
- override fun isEmpty(): Boolean {
- TODO("Not yet implemented")
- }
-
- override fun getLength(): Int {
- TODO("Not yet implemented")
- }
-}
\ No newline at end of file
+//import android.content.Context
+//import androidx.annotation.EmptySuper
+//import androidx.room.Dao
+//import androidx.room.Database
+//import androidx.room.Embedded
+//import androidx.room.Entity
+//import androidx.room.PrimaryKey
+//import androidx.room.Query
+//import androidx.room.Room
+//import androidx.room.RoomDatabase
+//import kotlinx.serialization.Serializable
+//import kotlinx.serialization.json.Json
+//import remote.write.RemoteWrite.TimeSeries
+//
+///// Room is a relational database
+///// Contains the following tables:
+///// - TimeSeries table:
+///// + labels : List sorted alphabetically and encoded in json
+///// - Sample table:
+///// + id
+///// + timestamp
+///// + value
+///// + TimeSeries foreign key
+//
+//@Entity
+//data class RoomTimeSeries (
+// @PrimaryKey(autoGenerate = false)
+// val labels : String
+//)
+//
+//@Entity
+//data class RoomSample(
+// @PrimaryKey(autoGenerate = true)
+// val id: Int = 0,
+// val timeStamp : Long,
+// val value : Double,
+//)
+//
+//@Serializable
+//data class TimeSeriesLabelList(
+// val labels: List
+//)
+//
+//data class TimeSeriesWithSamples(
+// @Embedded val timeSeries: RoomTimeSeries,
+// @Embedded val sample : RoomSample,
+//)
+//
+//@Database(
+// entities = [RoomTimeSeries::class, RoomSample::class],
+// version = 1
+//)
+//abstract class RemoteWriteDatabase: RoomDatabase() {
+// abstract val dao: RoomDao
+//}
+//
+//@Dao
+//interface RoomDao {
+//
+// fun insertOneTimeSeriesSample(){
+//
+// }
+// @Query("")//TODO
+// private fun insertTimeSeries(){
+//
+// }
+//
+// @Query("")///TODO
+// private fun insertSamples(){
+//
+// }
+//
+// //@Query("SELECT * ") //TODO
+// fun getNumberOfTimeSeriesSamples(number : Int) : List
+//
+// @Query("") //TODO
+// fun getTotalNumberOfSamples(){
+//
+// }
+//
+//}
+//
+//class RemoteWriteSenderDbStorage(getContext: () -> Context) : RemoteWriteSenderStorage(){
+// companion object{
+// const val dbName = "prometheus.db"
+// }
+//
+// private val roomDb by lazy {
+// Room.databaseBuilder(
+// getContext(),
+// RemoteWriteDatabase::class.java,
+// dbName,
+// ).build()
+// }
+//
+// private fun encodeLabels(labelsList: List) : String{
+// /// preserve the same order
+// val sorted : List = labelsList.sortedBy { it.name }
+// val timeSeriesLabelList = TimeSeriesLabelList(labels = sorted)
+// return Json.encodeToString(TimeSeriesLabelList.serializer(), timeSeriesLabelList)
+// }
+//
+// private fun decodeLabels(labels : String) : List {
+// return Json.decodeFromString(labels).labels
+// }
+// override fun writeScrapedSample(metricsScrape: MetricsScrape) {
+// TODO("Not yet implemented")
+// }
+//
+// override fun getScrapedSamplesCompressedProtobuf(howMany: Int): ByteArray {
+// TODO("Not yet implemented")
+// }
+//
+// override fun removeNumberOfScrapedSamples(number: Int) {
+// TODO("Not yet implemented")
+// }
+//
+// override fun isEmpty(): Boolean {
+// TODO("Not yet implemented")
+// }
+//
+// override fun getLength(): Int {
+// TODO("Not yet implemented")
+// }
+//}
\ No newline at end of file
diff --git a/client/app/src/main/java/com/birdthedeveloper/prometheus/android/prometheus/android/exporter/worker/RemoteWriteSenderMemStorage.kt b/client/app/src/main/java/com/birdthedeveloper/prometheus/android/prometheus/android/exporter/worker/RemoteWriteSenderMemStorage.kt
index 901bf7b..bd3343d 100644
--- a/client/app/src/main/java/com/birdthedeveloper/prometheus/android/prometheus/android/exporter/worker/RemoteWriteSenderMemStorage.kt
+++ b/client/app/src/main/java/com/birdthedeveloper/prometheus/android/prometheus/android/exporter/worker/RemoteWriteSenderMemStorage.kt
@@ -10,9 +10,6 @@ private typealias ConverterHashMap = HashMap, MutableList<
private const val TAG : String = "REMOTE_WRITE_SENDER_MEMORY_SIMPLE_STORAGE";
-
-//TODO sort this out
-
class RemoteWriteSenderSimpleMemoryStorage : RemoteWriteSenderStorage() {
private val data: Queue = LinkedList()