Commit 605f0ea2 authored by Paul Asmuth's avatar Paul Asmuth
Browse files

Merge branch 'adminui_fixes' of github.com:paulasmuth/fnordmetric-dev into fnordmetric2

parents 8fe45b12 3c6d3023
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@
 */
#include <fnordmetric/sql_extensions/domainconfig.h>
#include <fnordmetric/ui/continuousdomain.h>
#include <fnordmetric/ui/timedomain.h>

namespace fnordmetric {
namespace query {
@@ -34,6 +35,13 @@ void DomainConfig::setMin(const SValue& value) {
    return;
  }

  auto time_domain =
      dynamic_cast<ui::TimeDomain*>(domain_);
  if (time_domain != nullptr) {
    time_domain->setMin(value.getValue<fnordmetric::TimeType>());
    return;
  }

  RAISE(
      kRuntimeError,
      "TypeError: can't set min value for %c domain",
@@ -55,6 +63,13 @@ void DomainConfig::setMax(const SValue& value) {
    return;
  }

  auto time_domain =
      dynamic_cast<ui::TimeDomain*>(domain_);
  if (time_domain != nullptr) {
    time_domain->setMax(value.getValue<fnordmetric::TimeType>());
    return;
  }

  RAISE(
      kRuntimeError,
      "TypeError: can't set max value for %c domain",
+2 −2
Original line number Diff line number Diff line
@@ -155,12 +155,12 @@ public:
  }

  void setMin(T min) {
    min_value_ = min;
    min_value_ = static_cast<double>(min);
    padding_.first = 0.0f;
  }

  void setMax(T max) {
    max_value_ = max;
    max_value_ = static_cast<double>(max);
    padding_.second = 0.0f;
  }

+9 −3
Original line number Diff line number Diff line
@@ -78,6 +78,8 @@ FnordMetric.util.MetricPreviewWidget = function(viewport, query_params) {
  function runQuery() {
    var querystr = 
      FnordMetric.util.generateSQLQueryFromParams(query_params);
    console.log(querystr);

    FnordMetric.util.displayLoader(chart_container);
    FnordMetric.httpPost("/query", querystr, function(r) {
      if (r.status == 200) {
@@ -246,7 +248,10 @@ FnordMetric.util.MetricPreviewWidget = function(viewport, query_params) {
        "5 minutes",
        "15 minutes",
        "30 minutes",
        "1 hour"];
        "1 hour",
        "4 hours",
        "12 hours",
        "1 day"];

    timespans.map(function(timespan) {
      var option = document.createElement("option");
@@ -283,8 +288,8 @@ FnordMetric.util.MetricPreviewWidget = function(viewport, query_params) {
      "#", "btn", "<i class='fa fa-database'></i> SQL Editor");
    controls_query.onclick = function(e) {
      e.preventDefault();
      var query = 
        decodeURIComponent("SELECT * FROM " + metric);
      var query = FnordMetric.util.generateSQLQueryFromParams(query_params);
      console.log(query);
      FnordMetric.WebUI.singleton.openUrl(
        "query_playground?sql_query="+query, true);
    };
@@ -317,6 +322,7 @@ FnordMetric.util.MetricPreviewWidget = function(viewport, query_params) {
    secondary_controls.appendChild(timespan_title);
    secondary_controls.appendChild(next_timespan);

    table_container.className = "single_metric_ui table_container";
    chart_container.className = "single_metric_ui chart_container";
    elem.appendChild(chart_container);

+22 −21
Original line number Diff line number Diff line
@@ -410,7 +410,8 @@ FnordMetric.util.toMilliSeconds = function(timestr) {
  var conversion = {
    "s" : 1000,
    "m" : 60000,
    "h" : 3600000
    "h" : 3600000,
    "d" : 86400000
  }
  var seconds = time[0] * conversion[time[1]];
  return parseInt(seconds, 10);
@@ -430,35 +431,39 @@ FnordMetric.util.milliSecondsToTimeString = function(seconds) {
/* in singleMetricView */
FnordMetric.util.generateSQLQueryFromParams = function(params) {
  //FIX html escape 
  var query;
  var draw_stm = "DRAW LINECHART AXIS BOTTOM AXIS LEFT; ";
  var select_expr = "SELECT time AS x, ";
  var from_expr = " FROM ";
  var where_expr = "";
  var group_expr = "";
  var hasAggregation = false;

  var table_ref = params.innerViewValue
  var view = params.view;
  /* column for rollups */
  var columns = params.columns.split(",");; 
  var start_time = params.start_time;
  var end_time = params.end_time;
  var start_time = Math.round(params.start_time / 1000);
  var end_time = Math.round(params.end_time / 1000);
  var t_step = params.t_step;
  var t_window = params.t_window;
  var by = params.by;

  var query;
  var draw_stm = 
    "DRAW LINECHART WITH XDOMAIN FROM_TIMESTAMP(" + 
    start_time + "), FROM_TIMESTAMP(" + end_time + ")"
    + " AXIS BOTTOM AXIS LEFT; ";
  var select_expr = "SELECT time AS x, ";
  var from_expr = " FROM ";
  var where_expr = "";
  var group_expr = "";
  var hasAggregation = false;


  /* complete select_expr */
  if (view == "value") {
    select_expr += "value as y ";
  } else if (view == "rollup_sum" || view == "rollup_count") {
    draw_stm = "DRAW BARCHART AXIS BOTTOM AXIS LEFT;";
    var func = (view.split("_"))[1];
    //how to choose a column if there are more than one? 
    //how to define which column should be selected
    select_expr = 
      " SELECT `" + columns[0] + "` AS X, " + func + "(value) AS Y";

    //hasAggregation = true; ??
    hasAggregation = true;
  } else {
    select_expr +=
      view.toLowerCase() + "(value) AS Y";
@@ -469,12 +474,10 @@ FnordMetric.util.generateSQLQueryFromParams = function(params) {
  from_expr += "`" + table_ref + "`";

  /*complete where_expr */
  //is there any case in single metric view where only start or endtime are selected?
  if (start_time != undefined && end_time != undefined) {
    //what to use in place of FROM_TIMESTAMP
    where_expr =
      "WHERE time > FROM_TIMESTAMP(" + Math.round(start_time / 1000) + ")" +
      " AND time < FROM_TIMESTAMP(" + Math.round(end_time / 1000) + ")";
      " WHERE time > FROM_TIMESTAMP(" + start_time + ")" +
      " AND time < FROM_TIMESTAMP(" + end_time + ")";
  }


@@ -503,7 +506,6 @@ FnordMetric.util.generateSQLQueryFromParams = function(params) {
    if (by != undefined) {
      hasGroupStm = true;

      //check by format
      group_expr += "BY " + by;
    }

@@ -514,10 +516,9 @@ FnordMetric.util.generateSQLQueryFromParams = function(params) {
  }

  query = 
    draw_stm + select_expr +// where_expr + 
    from_expr + group_expr + ";";
    draw_stm + select_expr + from_expr +
    where_expr + group_expr + ";";

  console.log(query);
  return query;
}

+5 −0
Original line number Diff line number Diff line
@@ -1079,6 +1079,11 @@ h1.page_header em {
  text-align: center;
}

.single_metric_ui.table_container table.metric_list tr:hover td {
  background-color: #fff;
  cursor: default;
}

.single_metric_ui.chart_container svg {
  height: 100%;
}