Add basic InfluxDB reporter

This commit is contained in:
Ske
2019-07-16 23:34:22 +02:00
parent 2d58705e85
commit 02b41413b3
7 changed files with 125 additions and 6 deletions

View File

@@ -4,5 +4,7 @@ namespace PluralKit
{
public string Database { get; set; }
public string SentryUrl { get; set; }
public string InfluxUrl { get; set; }
public string InfluxDb { get; set; }
}
}

View File

@@ -6,6 +6,7 @@
<ItemGroup>
<PackageReference Include="App.Metrics" Version="3.1.0" />
<PackageReference Include="App.Metrics.Reporting.InfluxDB" Version="3.1.0" />
<PackageReference Include="Dapper" Version="1.60.6" />
<PackageReference Include="Dapper.Contrib" Version="1.60.1" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="2.2.0" />

View File

@@ -72,6 +72,12 @@ namespace PluralKit {
using (var conn = await _conn.Obtain())
return await conn.QueryAsync<ulong>("select uid from accounts where system = @Id", new { Id = system.Id });
}
public async Task<ulong> Count()
{
using (var conn = await _conn.Obtain())
return await conn.ExecuteScalarAsync<ulong>("select count(id) from systems");
}
}
public class MemberStore {
@@ -138,6 +144,12 @@ namespace PluralKit {
using (var conn = await _conn.Obtain())
return await conn.ExecuteScalarAsync<int>("select count(*) from members where system = @Id", system);
}
public async Task<ulong> Count()
{
using (var conn = await _conn.Obtain())
return await conn.ExecuteScalarAsync<ulong>("select count(id) from members");
}
}
public class MessageStore {
@@ -185,6 +197,12 @@ namespace PluralKit {
using (var conn = await _conn.Obtain())
await conn.ExecuteAsync("delete from messages where mid = @Id", new { Id = id });
}
public async Task<ulong> Count()
{
using (var conn = await _conn.Obtain())
return await conn.ExecuteScalarAsync<ulong>("select count(mid) from messages");
}
}
public class SwitchStore
@@ -258,6 +276,12 @@ namespace PluralKit {
await conn.ExecuteAsync("delete from switches where id = @Id", new {Id = sw.Id});
}
public async Task<ulong> Count()
{
using (var conn = await _conn.Obtain())
return await conn.ExecuteScalarAsync<ulong>("select count(id) from switches");
}
public struct SwitchListEntry
{
public ICollection<PKMember> Members;