Christopher Johnson (WMDE) has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/248022

Change subject: adds graphite module
......................................................................

adds graphite module

Change-Id: I04a9b6ca12651a7f0201be10097628c7853a9cd2
---
M server.R
M src/config.R
M src/model.R
A src/output/server-graphite.R
M src/utils.R
M ui.R
6 files changed, 60 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikidata/analytics/dashboard 
refs/changes/22/248022/1

diff --git a/server.R b/server.R
index 470ac1a..25a837c 100644
--- a/server.R
+++ b/server.R
@@ -6,6 +6,8 @@
     get_local_sparql_results()
     updateProgress(detail = "getting remote ...")
     get_remote_datasets()
+    updateProgress(detail = "getting graphite ...")
+    get_graphite_datasets()
     updateProgress(detail = "getting rdf ...")
     load_rdf_model()
     get_rdf_objects()
@@ -21,7 +23,7 @@
     updateProgress <- function(value = NULL, detail = NULL) {
       if (is.null(value)) {
         value <- progress$getValue()
-        value <- value + (progress$getMax() - value) / 5
+        value <- value + (progress$getMax() - value) / 6
       }
       progress$set(value = value, detail = detail)
     }
@@ -46,6 +48,8 @@
     source('./src/output/server-recent.R', local=TRUE)
     # Developer
     source('./src/output/server-developer.R', local=TRUE)
+    # Graphite
+    source('./src/output/server-graphite.R', local=TRUE)
     # RDF
     source('./src/output/server-RDFQ.R', local=TRUE)
     # Engagement
diff --git a/src/config.R b/src/config.R
index 2d75d5c..6590f65 100644
--- a/src/config.R
+++ b/src/config.R
@@ -22,6 +22,7 @@
 base_uri <- "/srv/dashboards/shiny-server/wdm/"
 data_uri <- paste0(base_uri, "data/")
 sparql_data_uri <- paste0(data_uri, "sparql/")
+graphite_api_uri <- "https://graphite.wikimedia.org/render/?target=";
 custom_css <- paste0(base_uri, "assets/css/custom.css")
 metrics_rdf <- paste0(base_uri, "assets/metrics.owl")
 
diff --git a/src/model.R b/src/model.R
index 6e6180e..8c9e60d 100644
--- a/src/model.R
+++ b/src/model.R
@@ -26,6 +26,29 @@
   return(invisible())
 }
 
+get_graphite_datasets <- function(){
+  out <- tryCatch({
+    con <- curl(agg_data_uri)
+    readLines(con)
+  },
+  warning = function(cond){
+    message(paste("URL caused a warning:", agg_data_uri))
+    message("Warning message:")
+    message(cond)
+    return(NULL)
+  },
+  error = function(cond){
+    message(paste("URL does not exist:", agg_data_uri))
+    message("Error message:")
+    message(cond)
+    return(NA)
+  },
+  finally = {
+    wikidata_addUsagesForPage <<- 
get_csv_from_api("jobrunner.pop.wikibase-addUsagesForPage.ok.mw1004.count&format=csv",graphite_api_uri)
+  })
+  return(out)
+}
+
 get_remote_datasets <- function(){
   out <- tryCatch({
         con <- curl(agg_data_uri)
diff --git a/src/output/server-graphite.R b/src/output/server-graphite.R
new file mode 100644
index 0000000..9a5c06d
--- /dev/null
+++ b/src/output/server-graphite.R
@@ -0,0 +1,19 @@
+#Graphite Metrics
+
+# http://wikiba.se/metrics#addUsagesForPage
+output$wikidata_addUsagesForPage_plot <- renderDygraph({
+  drop <- c("desc")
+  wikidata_addUsagesForPage <- 
wikidata_addUsagesForPage[,!(names(wikidata_addUsagesForPage) %in% drop)]
+  wikidata_addUsagesForPage <- type_convert(wikidata_addUsagesForPage, 
list(col_datetime(), col_double()))
+  df_addUsagesForPage_ordered <- 
wikidata_addUsagesForPage[order(wikidata_addUsagesForPage$date, decreasing 
=TRUE),]
+  dt_addUsagesForPage <- data.table(df_addUsagesForPage_ordered)
+  dt_addUsagesForPage <- dt_addUsagesForPage[, list(date, value)]
+  return(dygraph(dt_addUsagesForPage,
+                 main = "Wikidata Usages for Page",
+                 ylab = "") %>%
+           dyOptions(useDataTimezone = TRUE,
+                     labelsKMB = TRUE,
+                     fillGraph = TRUE,
+                     strokeWidth = 2, colors = brewer.pal(5, "Set2")[5:1]) %>%
+           dyCSS(css = custom_css))
+})
\ No newline at end of file
diff --git a/src/utils.R b/src/utils.R
index dc9bec4..9a4a41b 100644
--- a/src/utils.R
+++ b/src/utils.R
@@ -6,6 +6,13 @@
       return(set)
 }
 
+get_csv_from_api <- function(params, uri = graphite_api_uri){
+  location <- paste0(uri, params)
+  con <- url(location);
+  set <- readr::read_csv(con, col_names = c("desc", "date", "value"), 
col_types = list(col_character(), col_character(), col_double()))
+  return(set)
+}
+
 get_local_set <- function(file, uri = data_uri){
   location <- paste0(uri, file)
   set <- readr::read_delim(location, delim = "\t")
diff --git a/ui.R b/ui.R
index 935658b..42ad53d 100644
--- a/ui.R
+++ b/ui.R
@@ -17,8 +17,9 @@
              menuSubItem(text = "New Active Users/Day", tabName = 
"wikidata_daily_users_delta")),
     menuItem(text = "Developer", icon = icon("gears"),
              menuSubItem(text = "getClaims Usage", tabName = 
"wikidata_daily_getclaims_property_use")),
-#    menuItem(text = "Social Stats", icon = icon("heart"),
-#             menuSubItem(text = "Networks", tabName = 
"wikidata_daily_social")),
+    menuItem(text = "", badgeLabel = "Graphite", badgeColor = "black"),
+    menuItem(text = "Usages", icon = icon("question"),
+             menuSubItem(text = "addUsagesForPage", tabName = 
"wikidata_addUsagesForPage")),
     menuItem(text = "", badgeLabel = "Daily RDF", badgeColor = "red"),
     menuItem(text = "Queries", icon = icon("question"),
              menuSubItem(text = "Lists", tabName = "wikidata_rdf_queries")),
@@ -105,6 +106,8 @@
               uiOutput("metric_meta_getclaims_title")
             ),
             
DT::dataTableOutput("wikidata_daily_getclaims_property_use_table")),
+    tabItem(tabName = "wikidata_addUsagesForPage",
+            dygraphOutput("wikidata_addUsagesForPage_plot")),
     tabItem(tabName = "wikidata_rdf_queries",
             fluidRow(
               uiOutput("metric_meta_rdf_queries")

-- 
To view, visit https://gerrit.wikimedia.org/r/248022
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I04a9b6ca12651a7f0201be10097628c7853a9cd2
Gerrit-PatchSet: 1
Gerrit-Project: wikidata/analytics/dashboard
Gerrit-Branch: master
Gerrit-Owner: Christopher Johnson (WMDE) <christopher.john...@wikimedia.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to