oracle plugin: Implement the "Host" option.
authorFlorian Forster <octo@collectd.org>
Thu, 14 Jun 2012 12:46:03 +0000 (14:46 +0200)
committerFlorian Forster <octo@collectd.org>
Thu, 14 Jun 2012 12:46:03 +0000 (14:46 +0200)
src/collectd.conf.pod
src/oracle.c

index 5fee0d0..66ead9c 100644 (file)
@@ -3268,6 +3268,11 @@ values submitted to the daemon. Other than that, that name is not used.
 Defines the "database alias" or "service name" to connect to. Usually, these
 names are defined in the file named C<$ORACLE_HOME/network/admin/tnsnames.ora>.
 
+=item B<Host> I<Host>
+
+Hostname to use when dispatching values for this database. Defaults to using
+the global hostname of the I<collectd> instance.
+
 =item B<Username> I<Username>
 
 Username used for authentication.
index 4415b48..05213e0 100644 (file)
@@ -59,6 +59,7 @@
 struct o_database_s
 {
   char *name;
+  char *host;
   char *connect_id;
   char *username;
   char *password;
@@ -223,6 +224,11 @@ static int o_config_add_database (oconfig_item_t *ci) /* {{{ */
     return (-1);
   }
   memset (db, 0, sizeof (*db));
+  db->name = NULL;
+  db->host = NULL;
+  db->connect_id = NULL;
+  db->username = NULL;
+  db->password = NULL;
 
   status = o_config_set_string (&db->name, ci);
   if (status != 0)
@@ -238,6 +244,8 @@ static int o_config_add_database (oconfig_item_t *ci) /* {{{ */
 
     if (strcasecmp ("ConnectID", child->key) == 0)
       status = o_config_set_string (&db->connect_id, child);
+    else if (strcasecmp ("Host", child->key) == 0)
+      status = o_config_set_string (&db->host, child);
     else if (strcasecmp ("Username", child->key) == 0)
       status = o_config_set_string (&db->username, child);
     else if (strcasecmp ("Password", child->key) == 0)
@@ -601,7 +609,8 @@ static int o_read_database_query (o_database_t *db, /* {{{ */
   } /* for (j = 1; j <= param_counter; j++) */
   /* }}} End of the ``define'' stuff. */
 
-  status = udb_query_prepare_result (q, prep_area, hostname_g,
+  status = udb_query_prepare_result (q, prep_area,
+      (db->host != NULL) ? db->host : hostname_g,
       /* plugin = */ "oracle", db->name, column_names, column_num,
       /* interval = */ 0);
   if (status != 0)