コード例 #1
0
        /// <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());
        }
コード例 #2
0
        /// <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());
        }
コード例 #3
0
        /// <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());
        }
コード例 #4
0
        /// <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());
        }
コード例 #5
0
        /// <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());
        }
コード例 #6
0
        /// <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());
        }
コード例 #7
0
        /// <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());
        }
コード例 #8
0
        /// <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());
        }
コード例 #9
0
        /// <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());
        }
コード例 #10
0
        /// <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());
        }
コード例 #11
0
        /// <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());
        }
コード例 #12
0
 /// <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));
 }
コード例 #13
0
        /// <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());
        }
コード例 #14
0
        /// <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());
        }
コード例 #15
0
        /// <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());
        }
コード例 #16
0
        /// <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());
        }
コード例 #17
0
 /// <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));
 }
コード例 #18
0
        /// <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());
        }
コード例 #19
0
        /// <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());
        }
コード例 #20
0
        /// <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());
        }
コード例 #21
0
        /// <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());
        }
コード例 #22
0
        /// <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());
        }
コード例 #23
0
        /// <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());
        }
コード例 #24
0
        /// <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());
        }
コード例 #25
0
 /// <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));
 }
コード例 #26
0
        /// <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());
        }
コード例 #27
0
        /// <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());
        }
コード例 #28
0
 /// <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"));
 }
コード例 #29
0
 /// <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));
 }
コード例 #30
0
        /// <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());
        }