Merge remote-tracking branch 'upstream/master'
authorZebity Spring <zebity@yahoo.com>
Mon, 3 Jun 2019 06:45:04 +0000 (16:45 +1000)
committerZebity Spring <zebity@yahoo.com>
Mon, 3 Jun 2019 06:45:04 +0000 (16:45 +1000)
1  2 
src/mysql.c
src/write_riemann.c

diff --combined src/mysql.c
@@@ -218,7 -218,7 +218,7 @@@ static int mysql_config_database(oconfi
            (db->database != NULL) ? db->database : "<default>");
  
      if (db->instance != NULL)
 -      snprintf(cb_name, sizeof(cb_name), "mysql-%s", db->instance);
 +      ssnprintf(cb_name, sizeof(cb_name), "mysql-%s", db->instance);
      else
        sstrncpy(cb_name, "mysql", sizeof(cb_name));
  
@@@ -500,15 -500,15 +500,15 @@@ static int mysql_read_slave_stats(mysql
      if (((io == NULL) || (strcasecmp(io, "yes") != 0)) &&
          (db->slave_io_running)) {
        n.severity = NOTIF_WARNING;
 -      snprintf(n.message, sizeof(n.message),
 -               "slave I/O thread not started or not connected to master");
 +      ssnprintf(n.message, sizeof(n.message),
 +                "slave I/O thread not started or not connected to master");
        plugin_dispatch_notification(&n);
        db->slave_io_running = false;
      } else if (((io != NULL) && (strcasecmp(io, "yes") == 0)) &&
                 (!db->slave_io_running)) {
        n.severity = NOTIF_OKAY;
 -      snprintf(n.message, sizeof(n.message),
 -               "slave I/O thread started and connected to master");
 +      ssnprintf(n.message, sizeof(n.message),
 +                "slave I/O thread started and connected to master");
        plugin_dispatch_notification(&n);
        db->slave_io_running = true;
      }
      if (((sql == NULL) || (strcasecmp(sql, "yes") != 0)) &&
          (db->slave_sql_running)) {
        n.severity = NOTIF_WARNING;
 -      snprintf(n.message, sizeof(n.message), "slave SQL thread not started");
 +      ssnprintf(n.message, sizeof(n.message), "slave SQL thread not started");
        plugin_dispatch_notification(&n);
        db->slave_sql_running = false;
      } else if (((sql != NULL) && (strcasecmp(sql, "yes") == 0)) &&
                 (!db->slave_sql_running)) {
        n.severity = NOTIF_OKAY;
 -      snprintf(n.message, sizeof(n.message), "slave SQL thread started");
 +      ssnprintf(n.message, sizeof(n.message), "slave SQL thread started");
        plugin_dispatch_notification(&n);
        db->slave_sql_running = true;
      }
@@@ -905,6 -905,8 +905,8 @@@ static int mysql_read(user_data_t *ud) 
  
      } else if (strncmp(key, "Slow_queries", strlen("Slow_queries")) == 0) {
        derive_submit("mysql_slow_queries", NULL, val, db);
+     } else if (strcmp(key, "Uptime") == 0) {
+       gauge_submit("uptime", NULL, val, db);
      }
    }
    mysql_free_result(res);
diff --combined src/write_riemann.c
@@@ -291,18 -291,17 +291,18 @@@ wrr_value_to_event(struct riemann_host 
                vl->type_instance);
    if (host->always_append_ds || (ds->ds_num > 1)) {
      if (host->event_service_prefix == NULL)
 -      snprintf(service_buffer, sizeof(service_buffer), "%s/%s", &name_buffer[1],
 -               ds->ds[index].name);
 +      ssnprintf(service_buffer, sizeof(service_buffer), "%s/%s",
 +                &name_buffer[1], ds->ds[index].name);
      else
 -      snprintf(service_buffer, sizeof(service_buffer), "%s%s/%s",
 -               host->event_service_prefix, &name_buffer[1], ds->ds[index].name);
 +      ssnprintf(service_buffer, sizeof(service_buffer), "%s%s/%s",
 +                host->event_service_prefix, &name_buffer[1],
 +                ds->ds[index].name);
    } else {
      if (host->event_service_prefix == NULL)
        sstrncpy(service_buffer, &name_buffer[1], sizeof(service_buffer));
      else
 -      snprintf(service_buffer, sizeof(service_buffer), "%s%s",
 -               host->event_service_prefix, &name_buffer[1]);
 +      ssnprintf(service_buffer, sizeof(service_buffer), "%s%s",
 +                host->event_service_prefix, &name_buffer[1]);
    }
  
    riemann_event_set(
    if ((ds->ds[index].type != DS_TYPE_GAUGE) && (rates != NULL)) {
      char ds_type[DATA_MAX_NAME_LEN];
  
 -    snprintf(ds_type, sizeof(ds_type), "%s:rate",
 -             DS_TYPE_TO_STRING(ds->ds[index].type));
 +    ssnprintf(ds_type, sizeof(ds_type), "%s:rate",
 +              DS_TYPE_TO_STRING(ds->ds[index].type));
      riemann_event_string_attribute_add(event, "ds_type", ds_type);
    } else {
      riemann_event_string_attribute_add(event, "ds_type",
    {
      char ds_index[DATA_MAX_NAME_LEN];
  
 -    snprintf(ds_index, sizeof(ds_index), "%" PRIsz, index);
 +    ssnprintf(ds_index, sizeof(ds_index), "%" PRIsz, index);
      riemann_event_string_attribute_add(event, "ds_index", ds_index);
    }
  
                        RIEMANN_EVENT_FIELD_NONE);
    }
  
+   if (vl->meta) {
+     char **toc;
+     int n = meta_data_toc(vl->meta, &toc);
+     for (int i = 0; i < n; i++) {
+       char *key = toc[i];
+       char *value;
+       if (0 == meta_data_as_string(vl->meta, key, &value)) {
+         riemann_event_string_attribute_add(event, key, value);
+         free(value);
+       }
+     }
+     free(toc);
+   }
    DEBUG("write_riemann plugin: Successfully created message for metric: "
          "host = \"%s\", service = \"%s\"",
          event->host, event->service);
@@@ -778,8 -794,8 +795,8 @@@ static int wrr_config_node(oconfig_item
      return status;
    }
  
 -  snprintf(callback_name, sizeof(callback_name), "write_riemann/%s",
 -           host->name);
 +  ssnprintf(callback_name, sizeof(callback_name), "write_riemann/%s",
 +            host->name);
  
    user_data_t ud = {.data = host, .free_func = wrr_free};