Skip to content

Commit

Permalink
feat:更改数据统计方式,源表实时计算改为统计表查询
Browse files Browse the repository at this point in the history
  • Loading branch information
Qinyouzeng committed Apr 8, 2024
1 parent 47cf411 commit d95a66c
Show file tree
Hide file tree
Showing 107 changed files with 4,827 additions and 61 deletions.
58 changes: 58 additions & 0 deletions Masa.Tsc.sln
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,18 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Masa.Tsc.Service.Admin", "s
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Masa.Tsc.Web.Admin.Wasm", "src\Web\Masa.Tsc.Web.Admin.Wasm\Masa.Tsc.Web.Admin.Wasm.csproj", "{192AE8AB-9E20-44CB-895C-4F981179F92A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Infrastructure", "Infrastructure", "{386CA149-7280-4F1F-A064-4F3B9643C082}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Masa.Contrib.StackSdks.Tsc.Apm.Clickhouse", "src\Infrastructure\Masa.Contrib.StackSdks.Tsc.Apm.Clickhouse\Masa.Contrib.StackSdks.Tsc.Apm.Clickhouse.csproj", "{2F17FF6D-31C8-4D43-9918-B31DE9E8A826}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Masa.Contrib.StackSdks.Tsc.Clickhouse", "src\Infrastructure\Masa.Contrib.StackSdks.Tsc.Clickhouse\Masa.Contrib.StackSdks.Tsc.Clickhouse.csproj", "{FCED6C6F-3EC0-47A4-84CD-0392BB663999}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Masa.Contrib.StackSdks.Tsc.Elasticsearch", "src\Infrastructure\Masa.Contrib.StackSdks.Tsc.Elasticsearch\Masa.Contrib.StackSdks.Tsc.Elasticsearch.csproj", "{860A1867-2BC7-4AAD-82E8-55CD74C0F608}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Masa.BuildingBlocks.StackSdks.Tsc.Contracts", "src\Infrastructure\Masa.BuildingBlocks.StackSdks.Tsc.Contracts\Masa.BuildingBlocks.StackSdks.Tsc.Contracts.csproj", "{647CDA33-B497-47F7-A258-1F1831BF240A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Masa.Utils.Data.Prometheus", "src\Infrastructure\Masa.Utils.Data.Prometheus\Masa.Utils.Data.Prometheus.csproj", "{7F3CD41F-35ED-46C9-8974-D064E73B9D19}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -104,6 +116,46 @@ Global
{192AE8AB-9E20-44CB-895C-4F981179F92A}.Release|Any CPU.Build.0 = Release|Any CPU
{192AE8AB-9E20-44CB-895C-4F981179F92A}.Release|x86.ActiveCfg = Release|Any CPU
{192AE8AB-9E20-44CB-895C-4F981179F92A}.Release|x86.Build.0 = Release|Any CPU
{2F17FF6D-31C8-4D43-9918-B31DE9E8A826}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2F17FF6D-31C8-4D43-9918-B31DE9E8A826}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2F17FF6D-31C8-4D43-9918-B31DE9E8A826}.Debug|x86.ActiveCfg = Debug|Any CPU
{2F17FF6D-31C8-4D43-9918-B31DE9E8A826}.Debug|x86.Build.0 = Debug|Any CPU
{2F17FF6D-31C8-4D43-9918-B31DE9E8A826}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2F17FF6D-31C8-4D43-9918-B31DE9E8A826}.Release|Any CPU.Build.0 = Release|Any CPU
{2F17FF6D-31C8-4D43-9918-B31DE9E8A826}.Release|x86.ActiveCfg = Release|Any CPU
{2F17FF6D-31C8-4D43-9918-B31DE9E8A826}.Release|x86.Build.0 = Release|Any CPU
{FCED6C6F-3EC0-47A4-84CD-0392BB663999}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FCED6C6F-3EC0-47A4-84CD-0392BB663999}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FCED6C6F-3EC0-47A4-84CD-0392BB663999}.Debug|x86.ActiveCfg = Debug|Any CPU
{FCED6C6F-3EC0-47A4-84CD-0392BB663999}.Debug|x86.Build.0 = Debug|Any CPU
{FCED6C6F-3EC0-47A4-84CD-0392BB663999}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FCED6C6F-3EC0-47A4-84CD-0392BB663999}.Release|Any CPU.Build.0 = Release|Any CPU
{FCED6C6F-3EC0-47A4-84CD-0392BB663999}.Release|x86.ActiveCfg = Release|Any CPU
{FCED6C6F-3EC0-47A4-84CD-0392BB663999}.Release|x86.Build.0 = Release|Any CPU
{860A1867-2BC7-4AAD-82E8-55CD74C0F608}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{860A1867-2BC7-4AAD-82E8-55CD74C0F608}.Debug|Any CPU.Build.0 = Debug|Any CPU
{860A1867-2BC7-4AAD-82E8-55CD74C0F608}.Debug|x86.ActiveCfg = Debug|Any CPU
{860A1867-2BC7-4AAD-82E8-55CD74C0F608}.Debug|x86.Build.0 = Debug|Any CPU
{860A1867-2BC7-4AAD-82E8-55CD74C0F608}.Release|Any CPU.ActiveCfg = Release|Any CPU
{860A1867-2BC7-4AAD-82E8-55CD74C0F608}.Release|Any CPU.Build.0 = Release|Any CPU
{860A1867-2BC7-4AAD-82E8-55CD74C0F608}.Release|x86.ActiveCfg = Release|Any CPU
{860A1867-2BC7-4AAD-82E8-55CD74C0F608}.Release|x86.Build.0 = Release|Any CPU
{647CDA33-B497-47F7-A258-1F1831BF240A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{647CDA33-B497-47F7-A258-1F1831BF240A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{647CDA33-B497-47F7-A258-1F1831BF240A}.Debug|x86.ActiveCfg = Debug|Any CPU
{647CDA33-B497-47F7-A258-1F1831BF240A}.Debug|x86.Build.0 = Debug|Any CPU
{647CDA33-B497-47F7-A258-1F1831BF240A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{647CDA33-B497-47F7-A258-1F1831BF240A}.Release|Any CPU.Build.0 = Release|Any CPU
{647CDA33-B497-47F7-A258-1F1831BF240A}.Release|x86.ActiveCfg = Release|Any CPU
{647CDA33-B497-47F7-A258-1F1831BF240A}.Release|x86.Build.0 = Release|Any CPU
{7F3CD41F-35ED-46C9-8974-D064E73B9D19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7F3CD41F-35ED-46C9-8974-D064E73B9D19}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7F3CD41F-35ED-46C9-8974-D064E73B9D19}.Debug|x86.ActiveCfg = Debug|Any CPU
{7F3CD41F-35ED-46C9-8974-D064E73B9D19}.Debug|x86.Build.0 = Debug|Any CPU
{7F3CD41F-35ED-46C9-8974-D064E73B9D19}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7F3CD41F-35ED-46C9-8974-D064E73B9D19}.Release|Any CPU.Build.0 = Release|Any CPU
{7F3CD41F-35ED-46C9-8974-D064E73B9D19}.Release|x86.ActiveCfg = Release|Any CPU
{7F3CD41F-35ED-46C9-8974-D064E73B9D19}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand All @@ -120,6 +172,12 @@ Global
{AD1AD4E4-5D65-4480-9A38-7B11FC367501} = {F3986DD3-0372-4929-B72A-09D93196541E}
{C9455D57-1672-4A97-9CF2-3B23706282A6} = {4A1D2DFA-D091-4CD2-B9CB-D7AAA795ABD9}
{192AE8AB-9E20-44CB-895C-4F981179F92A} = {F3986DD3-0372-4929-B72A-09D93196541E}
{386CA149-7280-4F1F-A064-4F3B9643C082} = {92F40AFA-8416-40BE-9893-D35E1924C69D}
{2F17FF6D-31C8-4D43-9918-B31DE9E8A826} = {386CA149-7280-4F1F-A064-4F3B9643C082}
{FCED6C6F-3EC0-47A4-84CD-0392BB663999} = {386CA149-7280-4F1F-A064-4F3B9643C082}
{860A1867-2BC7-4AAD-82E8-55CD74C0F608} = {386CA149-7280-4F1F-A064-4F3B9643C082}
{647CDA33-B497-47F7-A258-1F1831BF240A} = {386CA149-7280-4F1F-A064-4F3B9643C082}
{7F3CD41F-35ED-46C9-8974-D064E73B9D19} = {386CA149-7280-4F1F-A064-4F3B9643C082}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {B83BA2BA-19E5-41FB-A92A-16A03DA229E4}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Masa.Contrib.StackSdks.Tsc.Apm.Clickhouse" Version="1.0.0-local" />
<ItemGroup>
<PackageReference Include="Masa.Contrib.Service.Caller.DaprClient" Version="$(MasaFrameworkPackageVersion)" />
<PackageReference Include="Masa.Contrib.StackSdks.Config" Version="$(MasaFrameworkPackageVersion)" />
<PackageReference Include="Masa.BuildingBlocks.Data.Contracts" Version="$(MasaFrameworkPackageVersion)" />
Expand All @@ -19,5 +18,6 @@

<ItemGroup>
<ProjectReference Include="..\..\Contracts\Masa.Tsc.Contracts.Admin\Masa.Tsc.Contracts.Admin.csproj" />
<ProjectReference Include="..\..\Infrastructure\Masa.Contrib.StackSdks.Tsc.Apm.Clickhouse\Masa.Contrib.StackSdks.Tsc.Apm.Clickhouse.csproj" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// Copyright (c) MASA Stack All rights reserved.
// Licensed under the MIT License. See LICENSE.txt in the project root for license information.

namespace System.Collections.Generic;

public static class DictionaryExtenistions
{
private static readonly JsonSerializerOptions _serializerOptions = new()
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
NumberHandling = JsonNumberHandling.AllowReadingFromString
};

public static Dictionary<string, T> GroupByKeyPrefix<T>(this Dictionary<string, object> source, string prefix, Func<object, T>? convertFunc = null)
{
var result = new Dictionary<string, T>();
foreach (var key in source.Keys)
{
if (!key.StartsWith(prefix))
continue;
var value = source[key];
var newKey = key[prefix.Length..];
if (convertFunc != null)
value = convertFunc(source[key]);
result.Add(newKey, (T)value!);
}
return result;
}

internal static T ConvertTo<T>(this Dictionary<string, object> dic)
{
var text = JsonSerializer.Serialize(dic, _serializerOptions);
return JsonSerializer.Deserialize<T>(text, _serializerOptions)!;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Masa.BuildingBlocks.Data.Contracts" Version="$(MasaFrameworkPackageVersion)" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Copyright (c) MASA Stack All rights reserved.
// Licensed under the MIT License. See LICENSE.txt in the project root for license information.

namespace Masa.BuildingBlocks.StackSdks.Tsc.Contracts.Model.Aggregate;

public enum AggregateTypes
{
Count=1,
Sum,
Avg,
DistinctCount,
DateHistogram,
GroupBy
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// Copyright (c) MASA Stack All rights reserved.
// Licensed under the MIT License. See LICENSE.txt in the project root for license information.

namespace Masa.BuildingBlocks.StackSdks.Tsc.Contracts.Model.Aggregate;

public class SimpleAggregateRequestDto : BaseRequestDto
{
public string Name { get; set; }

public string Alias { get; set; }

public AggregateTypes Type { get; set; }

public int MaxCount { get; set; }

/// <summary>
/// currently support elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/7.17/search-aggregations-bucket-datehistogram-aggregation.html
/// </summary>
public string Interval { get; set; }

/// <summary>
/// only fro type Group by, true return type is IEnumerable<KeyValuePair<string, int>>,false is IEnumerable<string>
/// </summary>
public bool AllValue { get; set; }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
// Copyright (c) MASA Stack All rights reserved.
// Licensed under the MIT License. See LICENSE.txt in the project root for license information.

namespace Masa.BuildingBlocks.StackSdks.Tsc.Contracts.Model;

public class BaseRequestDto : RequestPageBase
{
public string TraceId { get; set; }

public string Service { get; set; }

public string Instance { get; set; }

public string Endpoint { get; set; }

public string Keyword { get; set; }

public DateTime Start { get; set; }

public DateTime End { get; set; }

public string RawQuery { get; set; }

public IEnumerable<FieldConditionDto> Conditions { get; set; }

public FieldOrderDto? Sort { get; set; }

public virtual void AppendConditions() { }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// Copyright (c) MASA Stack All rights reserved.
// Licensed under the MIT License. See LICENSE.txt in the project root for license information.

namespace Masa.BuildingBlocks.StackSdks.Tsc.Contracts.Model;

public enum ConditionTypes
{
Equal=1,
NotEqual,
Great,
Less,
GreatEqual,
LessEqual,
In,
NotIn,
Regex,
NotRegex,
Exists,
NotExists
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Copyright (c) MASA Stack All rights reserved.
// Licensed under the MIT License. See LICENSE.txt in the project root for license information.

namespace Masa.BuildingBlocks.StackSdks.Tsc.Contracts.Model;

public class FieldConditionDto
{
public string Name { get; set; }

public ConditionTypes Type { get; set; }

public object Value { get; set; }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// Copyright (c) MASA Stack All rights reserved.
// Licensed under the MIT License. See LICENSE.txt in the project root for license information.

namespace Masa.BuildingBlocks.StackSdks.Tsc.Contracts.Model;

public class FieldOrderDto
{
public string Name { get; set; }

public bool IsDesc { get; set; } = true;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// Copyright (c) MASA Stack All rights reserved.
// Licensed under the MIT License. See LICENSE.txt in the project root for license information.

namespace Masa.BuildingBlocks.StackSdks.Tsc.Contracts.Model;

public class MappingResponseDto
{
public string Name { get; set; }

public string Type { get; set; }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
// Copyright (c) MASA Stack All rights reserved.
// Licensed under the MIT License. See LICENSE.txt in the project root for license information.

namespace Masa.BuildingBlocks.StackSdks.Tsc.Contracts.Trace;

public class TraceDatabaseResponseDto
{
[JsonPropertyName("db.system")]
public virtual string System { get; set; }

[JsonPropertyName("db.connection_string")]
public virtual string ConnectionString { get; set; }

[JsonPropertyName("db.user")]
public virtual string User { get; set; }

[JsonPropertyName("net.peer.ip")]
public virtual string PeerIp { get; set; }

[JsonPropertyName("net.peer.name")]
public virtual string PeerName { get; set; }

[JsonPropertyName("net.peer.port")]
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString)]
public virtual int PeerPort { get; set; }

[JsonPropertyName("net.transport")]
public virtual string Transport { get; set; }

[JsonPropertyName("db.jdbc.driver_classname")]
public virtual string JdbcDriverClassName { get; set; }

[JsonPropertyName("db.mssql.instance_name")]
public virtual string MssqlInstanceName { get; set; }

[JsonPropertyName("db.name")]
public virtual string Name { get; set; }

[JsonPropertyName("db.statement")]
public virtual string Statement { get; set; }

[JsonPropertyName("db.operation")]
public virtual string Operation { get; set; }

[JsonPropertyName("db.redis.database_index")]
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString)]
public virtual int RedisDatabaseIndex { get; set; }

[JsonPropertyName("db.mongodb.collection")]
public virtual string MongodbCollection { get; set; }

[JsonPropertyName("db.sql.table")]
public virtual string SqlTable { get; set; }

#region Cassandra

[JsonPropertyName("db.cassandra.page_size")]
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString)]
public virtual int CassandraPageSize { get; set; }

[JsonPropertyName("db.cassandra.consistency_level")]
public virtual string CassandraConsistencyLevel { get; set; }

[JsonPropertyName("db.cassandra.table")]
public virtual string CassandraTable { get; set; }

[JsonPropertyName("db.cassandra.idempotence")]
public virtual bool CassandraIdempotence { get; set; }

[JsonPropertyName("db.cassandra.speculative_execution_count")]
public virtual bool CassandraSpeculativeExecutionCount { get; set; }

[JsonPropertyName("db.cassandra.coordinator.id")]
public virtual string CassandraCoordinatorId { get; set; }

[JsonPropertyName("db.cassandra.coordinator.dc")]
public virtual string CassandraCoordinatorDc { get; set; }

#endregion
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Copyright (c) MASA Stack All rights reserved.
// Licensed under the MIT License. See LICENSE.txt in the project root for license information.

namespace Masa.BuildingBlocks.StackSdks.Tsc.Contracts.Model.Trace;

public sealed class TraceDtoKind
{
private TraceDtoKind() { }

public const string SPAN_KIND_SERVER = nameof(SPAN_KIND_SERVER);

public const string SPAN_KIND_CLIENT = nameof(SPAN_KIND_CLIENT);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// Copyright (c) MASA Stack All rights reserved.
// Licensed under the MIT License. See LICENSE.txt in the project root for license information.

namespace Masa.BuildingBlocks.StackSdks.Tsc.Contracts.Trace;

public class TraceExceptionResponseDto
{
[JsonPropertyName("exception.type")]
public virtual string Type { get; set; }

[JsonPropertyName("exception.message")]
public virtual string Message { get; set; }

[JsonPropertyName("exception.stacktrace")]
public virtual string StackTrace { get; set; }

[JsonPropertyName("exception.escaped")]
public virtual bool Escaped { get; set; }
}
Loading

0 comments on commit d95a66c

Please sign in to comment.