Skip to content

Commit 87ecac3

Browse files
authored
uptake kineticpulse library for metrics logic in acdc (#51)
1 parent 6dcc7c3 commit 87ecac3

File tree

11 files changed

+51
-212
lines changed

11 files changed

+51
-212
lines changed

acdc-ws/app/Filters.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import utils.MetricFilter
2-
31
import javax.inject.Inject
42

53
import play.api.http.DefaultHttpFilters
64

5+
import com.salesforce.mce.kineticpulse.MetricFilter
6+
77
class Filters @Inject() (
88
metricsFilter: MetricFilter
99
) extends DefaultHttpFilters(metricsFilter)

acdc-ws/app/Module.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77

88
import com.google.inject.AbstractModule
99

10-
import services.{Metric, PrometheusMetric}
10+
import com.salesforce.mce.kineticpulse.{Metric, PrometheusMetric}
11+
1112
import tasks.{AuthSettingReloadTask, DataCountTask, DataInstExpirationTask}
1213
import utils.{Authorization, AuthorizationSettings}
1314

acdc-ws/app/controllers/MetricController.scala

Lines changed: 0 additions & 25 deletions
This file was deleted.

acdc-ws/app/services/Metric.scala

Lines changed: 0 additions & 112 deletions
This file was deleted.

acdc-ws/app/tasks/DataCountTask.scala

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,13 @@ import com.salesforce.mce.acdc.db.{
1414
DatasetLineageQuery,
1515
DatasetQuery
1616
}
17-
import services.{DatabaseService, Metric}
18-
import utils.DbConfig
17+
import services.DatabaseService
18+
import utils.{AcdcMetric, DbConfig}
1919

2020
class DataCountTask @Inject() (
2121
actorSystem: ActorSystem,
2222
dbService: DatabaseService,
23-
dbConfig: DbConfig,
24-
metric: Metric
23+
dbConfig: DbConfig
2524
)(implicit
2625
ec: ExecutionContext
2726
) extends Logging {
@@ -39,9 +38,9 @@ class DataCountTask @Inject() (
3938
logger.debug(s"Counted $datasetInstanceCount records from dataset_instance ...")
4039
logger.debug(s"Counted $datasetLineageCount records from dataset_lineage ...")
4140

42-
metric.countDB("dataset", datasetCount.toDouble)
43-
metric.countDB("dataset-instance", datasetInstanceCount.toDouble)
44-
metric.countDB("dataset-lineage", datasetLineageCount.toDouble)
41+
AcdcMetric.countDB("dataset", datasetCount.toDouble)
42+
AcdcMetric.countDB("dataset-instance", datasetInstanceCount.toDouble)
43+
AcdcMetric.countDB("dataset-lineage", datasetLineageCount.toDouble)
4544

4645
refresh()
4746
}

acdc-ws/app/utils/AcdcMetric.scala

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package utils
2+
3+
import io.prometheus.client.Gauge
4+
5+
object AcdcMetric {
6+
val dbCountGauge: Gauge = Gauge
7+
.build()
8+
.name("acdc_db_record_count")
9+
.labelNames("table")
10+
.help("acdc DB table records count")
11+
.register
12+
13+
def countDB(table: String, cnt: Double): Unit = {
14+
dbCountGauge.labels(table).set(cnt)
15+
}
16+
17+
}

acdc-ws/app/utils/MetricFilter.scala

Lines changed: 0 additions & 49 deletions
This file was deleted.

acdc-ws/conf/application.conf

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,26 @@ acdc.db {
3939
count-task-frequency-minute = ${?COUNT_TASK_FREQUENCY_MINUTE}
4040
}
4141

42+
com.salesforce.mce.kineticpulse.metrics {
43+
44+
enabled = true
45+
46+
# some http request paths are not interesting to capture metrics such as http duration
47+
# Disable metric collection for these request paths
48+
bypass.paths = ["/__status", "/", "/__metrics"]
49+
50+
# routes segments to track in api_duration_seconds_summary, matched values go to the metric label "path"
51+
# example: ["eci", "model/predict", "model/accuracy"]
52+
routes-to-track = ["instance", "instances", "dataset", "datasets", "lineage"]
53+
54+
# delimiter is used within metric label "path" to replace the "/" in the request.path
55+
delimiter = "-"
56+
57+
# label value to be used when a path is not bypass, but did not match routes-to-track,
58+
unmatched-path = ""
59+
60+
}
61+
4262
## Akka
4363
# https://www.playframework.com/documentation/latest/ScalaAkka#Configuration
4464
# https://www.playframework.com/documentation/latest/JavaAkka#Configuration
@@ -369,11 +389,3 @@ play.assets {
369389
path = "/public"
370390
urlPrefix = "/assets"
371391
}
372-
373-
# some http request paths are not interesting to capture metrics such as http duration
374-
acdc.metrics {
375-
enable = true
376-
377-
# Disable metric collection for these request paths
378-
bypass.paths = ["/__status", "/", "/__metrics"]
379-
}

acdc-ws/conf/routes

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
GET /__status controllers.StatusController.status()
2-
GET /__metrics controllers.MetricController.collect()
2+
GET /__metrics com.salesforce.mce.kineticpulse.MetricController.collect()
33

44
-> /api/v1 routers.ApiRouter

build.sbt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
val slickVersion = "3.4.1"
22

33
val scalaTestArtifact = "org.scalatest" %% "scalatest" % "3.2.+" % Test
4-
val prometheusClient = "io.prometheus" % "simpleclient" % "0.16.0"
5-
val prometheusCommon = "io.prometheus" % "simpleclient_common" % "0.16.0"
6-
val prometheusHotSpot = "io.prometheus" % "simpleclient_hotspot" % "0.16.0"
4+
val kineticpulse = "com.salesforce.mce" %% "kineticpulse-metric" % "0.2.+"
75

86
lazy val commonSettings = Seq(
97
scalacOptions ++= Seq("-deprecation", "-feature", "-Xlint"), // , "-Xfatal-warnings"),
@@ -48,9 +46,7 @@ lazy val ws = (project in file("acdc-ws")).
4846
buildInfoPackage := "com.salesforce.mce.acdc.ws",
4947
libraryDependencies ++= Seq(
5048
guice,
51-
prometheusClient,
52-
prometheusCommon,
53-
prometheusHotSpot
49+
kineticpulse
5450
),
5551
dependencyOverrides ++= Seq(
5652
// fix https://nvd.nist.gov/vuln/detail/CVE-2022-42003

0 commit comments

Comments
 (0)