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