/// <summary> /// The SHOW TAG VALUES query returns the set of tag values for a specific tag key across all measurements in the database. /// </summary> /// <typeparam name="TInfluxRow"></typeparam> /// <typeparam name="TValue"></typeparam> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="db"></param> /// <param name="tagKey"></param> /// <param name="measurementName"></param> /// <returns></returns> public static async Task <InfluxResult <TInfluxRow> > ShowTagValuesAsAsync <TInfluxRow, TValue>(this IInfluxClient client, string db, string tagKey, string measurementName) where TInfluxRow : ITagValueRow <TValue>, new() { var parserResult = await client.ExecuteOperationAsync <TInfluxRow>($"SHOW TAG VALUES FROM \"{measurementName}\" WITH KEY = \"{tagKey}\"", db).ConfigureAwait(false); return(parserResult.Results.First()); }
/// <summary> /// Shows InfluxDB diagnostics. /// </summary> /// <typeparam name="TInfluxRow"></typeparam> /// <param name="client">The IInfluxClient that performs operation.</param> /// <returns></returns> public static async Task <InfluxResult <TInfluxRow> > ShowDiagnosticsAsync <TInfluxRow>(this IInfluxClient client) where TInfluxRow : IInfluxRow, new() { var parserResult = await client.ExecuteOperationAsync <TInfluxRow>($"SHOW DIAGNOSTICS").ConfigureAwait(false); return(parserResult.Results.First()); }
/// <summary> /// Drops a continuous query. /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="name"></param> /// <param name="db"></param> /// <returns></returns> public static async Task <InfluxResult> DropContinuousQuery(this IInfluxClient client, string db, string name) { var resultSet = await client.ExecuteOperationAsync($"DROP CONTINUOUS QUERY \"{name}\" ON \"{db}\"", db).ConfigureAwait(false); return(resultSet.Results.FirstOrDefault()); }
/// <summary> /// CREATE a new non-admin user. /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="username"></param> /// <param name="password"></param> /// <returns></returns> public static async Task <InfluxResult> CreateUserAsync(this IInfluxClient client, string username, string password) { var resultSet = await client.ExecuteOperationAsync($"CREATE USER {username} WITH PASSWORD '{password}'").ConfigureAwait(false); return(resultSet.Results.FirstOrDefault()); }
/// <summary> /// To see the continuous queries you have defined, query SHOW CONTINUOUS QUERIES and InfluxDB will return the name and query for each continuous query in the database. /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="db"></param> /// <returns></returns> public static async Task <InfluxResult <ContinuousQueryRow> > ShowContinuousQueries(this IInfluxClient client, string db) { var parserResult = await client.ExecuteOperationAsync <ContinuousQueryRow>("SHOW CONTINUOUS QUERIES", db).ConfigureAwait(false); return(parserResult.Results.First()); }
/// <summary> /// The SHOW MEASUREMENTS query returns the measurements in your database. /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="db"></param> /// <param name="measurementRegex"></param> /// <param name="where"></param> /// <returns></returns> public static async Task <InfluxResult <MeasurementRow> > ShowMeasurementsWithMeasurementAsync(this IInfluxClient client, string db, string measurementRegex, string where) { var parserResult = await client.ExecuteOperationAsync <MeasurementRow>($"SHOW MEASUREMENTS WITH MEASUREMENT =~ {measurementRegex} WHERE {where}", db).ConfigureAwait(false); return(parserResult.Results.First()); }
/// <summary> /// SHOW TAG KEYS returns the tag keys associated with each measurement. /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="db"></param> /// <returns></returns> public static async Task <InfluxResult <TagKeyRow> > ShowTagKeysAsync(this IInfluxClient client, string db) { var parserResult = await client.ExecuteOperationAsync <TagKeyRow>("SHOW TAG KEYS", db).ConfigureAwait(false); return(parserResult.Results.First()); }
/// <summary> /// The SHOW RETENTION POLICIES query lists the existing retention policies on a given database. /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="db"></param> /// <returns></returns> public static async Task <InfluxResult <RetentionPolicyRow> > ShowRetentionPoliciesAsync(this IInfluxClient client, string db) { var parserResult = await client.ExecuteOperationAsync <RetentionPolicyRow>($"SHOW RETENTION POLICIES ON \"{db}\"", db).ConfigureAwait(false); return(parserResult.Results.First()); }
/// <summary> /// The SHOW SERIES query returns the distinct series in your database. /// </summary> /// <typeparam name="TInfluxRow"></typeparam> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="db"></param> /// <param name="measurementName"></param> /// <param name="where"></param> /// <returns></returns> public static async Task <InfluxResult <ShowSeriesRow> > ShowSeriesAsync(this IInfluxClient client, string db, string measurementName, string where) { var parserResult = await client.ExecuteOperationAsync <ShowSeriesRow>($"SHOW SERIES FROM \"{measurementName}\" WHERE {where}", db).ConfigureAwait(false); return(parserResult.Results.First()); }
/// <summary> /// SHOW all existing users and their admin status. /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <returns></returns> public static async Task <InfluxResult <UserRow> > ShowUsersAsync(this IInfluxClient client) { var parserResult = await client.ExecuteOperationAsync <UserRow>($"SHOW USERS").ConfigureAwait(false); return(parserResult.Results.First()); }
/// <summary> /// SHOW a user’s database privileges. /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="username"></param> /// <returns></returns> public static async Task <InfluxResult <GrantsRow> > ShowGrantsAsync(this IInfluxClient client, string username) { var parserResult = await client.ExecuteOperationAsync <GrantsRow>($"SHOW GRANTS FOR {username}").ConfigureAwait(false); return(parserResult.Results.First()); }
/// <summary> /// Executes an arbitrary command that returns a table as a result. /// </summary> /// <typeparam name="TInfluxRow"></typeparam> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="commandOrQuery"></param> /// <param name="db"></param> /// <returns></returns> public static Task <InfluxResultSet <TInfluxRow> > ExecuteOperationAsync <TInfluxRow>(this IInfluxClient client, string commandOrQuery, string db) where TInfluxRow : new() { return(client.ExecuteOperationAsync <TInfluxRow>(commandOrQuery, db, null)); }
/// <summary> /// DROP a user. /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="username"></param> /// <returns></returns> public static async Task <InfluxResult> DropUserAsync(this IInfluxClient client, string username) { var resultSet = await client.ExecuteOperationAsync($"DROP USER {username}").ConfigureAwait(false); return(resultSet.Results.FirstOrDefault()); }
/// <summary> /// SET a user’s password. /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="username"></param> /// <param name="password"></param> /// <returns></returns> public static async Task <InfluxResult> SetPasswordAsync(this IInfluxClient client, string username, string password) { var resultSet = await client.ExecuteOperationAsync($"SET PASSWORD FOR {username} = '{password}'").ConfigureAwait(false); return(resultSet.Results.FirstOrDefault()); }
/// <summary> /// REVOKE READ, WRITE, or ALL database privileges from an existing user. /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="privilege"></param> /// <param name="db"></param> /// <param name="username"></param> /// <returns></returns> public static async Task <InfluxResult> RevokePrivilegeAsync(this IInfluxClient client, string db, DatabasePriviledge privilege, string username) { var resultSet = await client.ExecuteOperationAsync($"REVOKE {GetPrivilege( privilege )} ON \"{db}\" FROM {username}").ConfigureAwait(false); return(resultSet.Results.FirstOrDefault()); }
/// <summary> /// REVOKE administrative privileges from an admin user /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="username"></param> /// <returns></returns> public static async Task <InfluxResult> RevokeAdminPrivilegesAsync(this IInfluxClient client, string username) { var resultSet = await client.ExecuteOperationAsync($"REVOKE ALL PRIVILEGES FROM {username}").ConfigureAwait(false); return(resultSet.Results.FirstOrDefault()); }
/// <summary> /// Executes an arbitrary command or query that returns a table as a result. /// </summary> /// <typeparam name="TInfluxRow"></typeparam> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="commandOrQuery"></param> /// <param name="parameters"></param> /// <returns></returns> public static Task <InfluxResultSet <TInfluxRow> > ExecuteOperationAsync <TInfluxRow>(this IInfluxClient client, string commandOrQuery, object parameters) where TInfluxRow : new() { return(client.ExecuteOperationAsync <TInfluxRow>(commandOrQuery, null, parameters)); }
/// <summary> /// Delete a database with DROP DATABASE /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="db"></param> /// <returns></returns> public static async Task <InfluxResult> DropDatabaseAsync(this IInfluxClient client, string db) { var resultSet = await client.ExecuteOperationAsync($"DROP DATABASE \"{db}\"").ConfigureAwait(false); return(resultSet.Results.FirstOrDefault()); }
/// <summary> /// Get a list of all the databases in your system. /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <returns></returns> public static async Task <InfluxResult <DatabaseRow> > ShowDatabasesAsync(this IInfluxClient client) { var parserResult = await client.ExecuteOperationAsync <DatabaseRow>($"SHOW DATABASES").ConfigureAwait(false); return(parserResult.Results.First()); }
/// <summary> /// Delete series with DROP SERIES /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="db"></param> /// <param name="measurementName"></param> /// <param name="where"></param> /// <returns></returns> public static async Task <InfluxResult> DropSeries(this IInfluxClient client, string db, string measurementName, string where) { var resultSet = await client.ExecuteOperationAsync($"DROP SERIES FROM \"{measurementName}\" WHERE {where}", db).ConfigureAwait(false); return(resultSet.Results.FirstOrDefault()); }
/// <summary> /// The SHOW SERIES query returns the distinct series in your database. /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="db"></param> /// <returns></returns> public static async Task <InfluxResult <ShowSeriesRow> > ShowSeriesAsync(this IInfluxClient client, string db) { var parserResult = await client.ExecuteOperationAsync <ShowSeriesRow>($"SHOW SERIES", db).ConfigureAwait(false); return(parserResult.Results.First()); }
/// <summary> /// Delete measurements with DROP MEASUREMENT /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="measurementName"></param> /// <param name="db"></param> /// <returns></returns> public static async Task <InfluxResult> DropMeasurementAsync(this IInfluxClient client, string db, string measurementName) { var resultSet = await client.ExecuteOperationAsync($"DROP MEASUREMENT \"{measurementName}\"", db).ConfigureAwait(false); return(resultSet.Results.FirstOrDefault()); }
/// <summary> /// The SHOW MEASUREMENTS query returns the measurements in your database. /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="db"></param> /// <returns></returns> public static async Task <InfluxResult <MeasurementRow> > ShowMeasurementsAsync(this IInfluxClient client, string db) { var parserResult = await client.ExecuteOperationAsync <MeasurementRow>("SHOW MEASUREMENTS", db).ConfigureAwait(false); return(parserResult.Results.First()); }
/// <summary> /// The SHOW FIELD KEYS query returns the field keys across each measurement in the database. /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="db"></param> /// <param name="measurementName"></param> /// <returns></returns> public static async Task <InfluxResult <FieldKeyRow> > ShowFieldKeysAsync(this IInfluxClient client, string db, string measurementName) { var parserResult = await client.ExecuteOperationAsync <FieldKeyRow>($"SHOW FIELD KEYS FROM \"{measurementName}\"", db).ConfigureAwait(false); return(parserResult.Results.First()); }
/// <summary> /// Executes an arbitrary command that does not return a table. /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="commandOrQuery"></param> /// <param name="db"></param> /// <returns></returns> public static Task <InfluxResultSet> ExecuteOperationAsync(this IInfluxClient client, string commandOrQuery, string db) { return(client.ExecuteOperationAsync(commandOrQuery, db, null)); }
/// <summary> /// Shows Shards. /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <returns></returns> public static async Task <InfluxResult <ShardRow> > ShowShards(this IInfluxClient client) { var parserResult = await client.ExecuteOperationAsync <ShardRow>($"SHOW SHARDS").ConfigureAwait(false); return(parserResult.Results.First()); }
/// <summary> /// Modify retention policies with ALTER RETENTION POLICY /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="policyName"></param> /// <param name="db"></param> /// <param name="duration"></param> /// <param name="replicationLevel"></param> /// <param name="shardGroupDuration"></param> /// <param name="isDefault"></param> /// <returns></returns> public static async Task <InfluxResult> AlterRetentionPolicyAsync(this IInfluxClient client, string db, string policyName, string duration, int replicationLevel, string shardGroupDuration, bool isDefault) { var resultSet = await client.ExecuteOperationAsync($"ALTER RETENTION POLICY \"{policyName}\" ON \"{db}\" DURATION {duration} REPLICATION {replicationLevel} {GetShardGroupDuration( shardGroupDuration )} {GetDefault( isDefault )}").ConfigureAwait(false); return(resultSet.Results.FirstOrDefault()); }
/// <summary> /// CREATE a new admin user. /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="username"></param> /// <param name="password"></param> /// <returns></returns> public static Task <InfluxResultSet> CreateAdminUserAsync(this IInfluxClient client, string username, string password) { return(client.ExecuteOperationAsync($"CREATE USER {username} WITH PASSWORD '{password}' WITH ALL PRIVILEGES")); }
/// <summary> /// Executes an arbitrary command that does not return a table. /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="commandOrQuery"></param> /// <param name="parameters"></param> /// <returns></returns> public static Task <InfluxResultSet> ExecuteOperationAsync(this IInfluxClient client, string commandOrQuery, object parameters) { return(client.ExecuteOperationAsync(commandOrQuery, null, parameters)); }
/// <summary> /// Delete retention policies with DROP RETENTION POLICY /// </summary> /// <param name="client">The IInfluxClient that performs operation.</param> /// <param name="policyName"></param> /// <param name="db"></param> /// <returns></returns> public static async Task <InfluxResult> DropRetentionPolicyAsync(this IInfluxClient client, string db, string policyName) { var resultSet = await client.ExecuteOperationAsync($"DROP RETENTION POLICY \"{policyName}\" ON \"{db}\"").ConfigureAwait(false); return(resultSet.Results.FirstOrDefault()); }