-
Notifications
You must be signed in to change notification settings - Fork 332
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add FreeSql Diagnostics Copy from FreeSql's github * Add FreeSql Sample * Update skyapm.json
- Loading branch information
Showing
16 changed files
with
674 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,31 +1,31 @@ | ||
using Microsoft.AspNetCore; | ||
using Microsoft.Extensions.Hosting; | ||
using Microsoft.AspNetCore.Hosting; | ||
|
||
namespace SkyApm.Sample.Backend | ||
{ | ||
public class Program | ||
{ | ||
public static void Main(string[] args) | ||
{ | ||
BuildHost(args).Run(); | ||
using Microsoft.AspNetCore; | ||
using Microsoft.Extensions.Hosting; | ||
using Microsoft.AspNetCore.Hosting; | ||
|
||
namespace SkyApm.Sample.Backend | ||
{ | ||
public class Program | ||
{ | ||
public static void Main(string[] args) | ||
{ | ||
BuildHost(args).Run(); | ||
} | ||
|
||
#if NETCOREAPP2_1 | ||
#if NETCOREAPP2_1 | ||
|
||
public static IWebHost BuildHost(string[] args) => | ||
WebHost.CreateDefaultBuilder<Startup>(args) | ||
.Build(); | ||
|
||
#else | ||
|
||
public static IWebHost BuildHost(string[] args) => | ||
WebHost.CreateDefaultBuilder<Startup>(args) | ||
.Build(); | ||
public static IHost BuildHost(string[] args) => | ||
Host.CreateDefaultBuilder(args) | ||
.ConfigureWebHostDefaults(builder => | ||
{ | ||
builder.UseStartup<Startup>(); | ||
}).Build(); | ||
|
||
#else | ||
|
||
public static IHost BuildHost(string[] args) => | ||
Host.CreateDefaultBuilder(args) | ||
.ConfigureWebHostDefaults(builder => | ||
{ | ||
builder.UseStartup<Startup>(); | ||
}).Build(); | ||
|
||
#endif | ||
} | ||
#endif | ||
} | ||
} |
82 changes: 82 additions & 0 deletions
82
sample/SkyApm.Sample.FreeSql/Controllers/SongController.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
using Microsoft.AspNetCore.Mvc; | ||
using SkyApm.Sample.FreeSqlSqlite.Entitys; | ||
using System.Collections.Generic; | ||
using System.Linq; | ||
using System.Threading.Tasks; | ||
|
||
namespace SkyApm.Sample.FreeSqlSqlite.Controllers | ||
{ | ||
|
||
|
||
[Route("api/[controller]")] | ||
public class SongsController : Controller | ||
{ | ||
|
||
IFreeSql _fsql; | ||
|
||
public SongsController(IFreeSql fsql) | ||
{ | ||
_fsql = fsql; | ||
} | ||
|
||
[HttpGet] | ||
public Task<List<Song>> GetItems([FromQuery] string key, [FromQuery] int page = 1, [FromQuery] int limit = 20) | ||
{ | ||
return _fsql.Select<Song>().WhereIf(!string.IsNullOrEmpty(key), a => a.Title.Contains(key)).Page(page, limit).ToListAsync(); | ||
} | ||
|
||
/// <summary> | ||
/// curl -X GET "http://localhost:5000/restapi/Songs/GetPagingItems?key=FreeSql&PageNumber=2&PageSize=10" -H "accept: text/plain" | ||
/// </summary> | ||
/// <param name="key"></param> | ||
/// <param name="pagingInfo"></param> | ||
/// <returns></returns> | ||
[HttpGet("GetPagingItems")] | ||
public Task<List<Song>> GetPagingItems([FromQuery] string key, [FromQuery] PagingInfo pagingInfo) | ||
{ | ||
return _fsql.Select<Song>().WhereIf(!string.IsNullOrEmpty(key), a => a.Title.Contains(key)).Page(pagingInfo).ToListAsync(); | ||
} | ||
|
||
[HttpGet("{id}")] | ||
public async Task<Song> GetItem([FromRoute] int id) | ||
{ | ||
var s= await _fsql.Select<Song>().Where(a => a.Id == id).ToOneAsync(); | ||
return s; | ||
} | ||
|
||
public class ModelSong | ||
{ | ||
public string title { get; set; } | ||
} | ||
|
||
[HttpPost, ProducesResponseType(201)] | ||
async public Task<Song> Create([FromBody] ModelSong model) | ||
{ | ||
var ret = await _fsql.Insert<Song>().AppendData(new Song { Title = model.title }).ExecuteInsertedAsync(); | ||
return ret.FirstOrDefault(); | ||
} | ||
|
||
[HttpPut("{id}")] | ||
async public Task<Song> Update([FromRoute] int id, [FromBody] ModelSong model) | ||
{ | ||
var ret = await _fsql.Update<Song>().SetSource(new Song { Id = id, Title = model.title }).ExecuteUpdatedAsync(); | ||
return ret.FirstOrDefault(); | ||
} | ||
|
||
[HttpPatch("{id}")] | ||
async public Task<Song> UpdateDiy([FromRoute] int id, [FromForm] string title) | ||
{ | ||
var up = _fsql.Update<Song>().Where(a => a.Id == id); | ||
if (!string.IsNullOrEmpty(title)) up.Set(a => a.Title, title); | ||
var ret = await up.ExecuteUpdatedAsync(); | ||
return ret.FirstOrDefault(); | ||
} | ||
|
||
[HttpDelete("{id}"), ProducesResponseType(204)] | ||
async public Task<Song> Delete([FromRoute] int id) | ||
{ | ||
var ret = await _fsql.Delete<Song>().Where(a => a.Id == id).ExecuteDeletedAsync(); | ||
return ret.FirstOrDefault(); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
using FreeSql.DataAnnotations; | ||
|
||
namespace SkyApm.Sample.FreeSqlSqlite.Entitys | ||
{ | ||
public class Song | ||
{ | ||
|
||
[Column(IsIdentity = true)] | ||
public int Id { get; set; } | ||
public string Title { get; set; } | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
using FreeSql.Internal.Model; | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Linq; | ||
using System.Threading.Tasks; | ||
|
||
namespace SkyApm.Sample.FreeSqlSqlite | ||
{ | ||
public class PagingInfo : BasePagingInfo | ||
{ | ||
/// <summary> | ||
/// 无参构造函数 | ||
/// </summary> | ||
public PagingInfo() | ||
{ | ||
} | ||
/// <summary> | ||
/// 当前为第1页,每页大小的构造函数 | ||
/// </summary> | ||
/// <param name="pageSize"></param> | ||
public PagingInfo(int pageSize) | ||
{ | ||
PageNumber = 1; | ||
PageSize = pageSize; | ||
} | ||
/// <summary> | ||
/// 带当前页和每页大小的构造函数 | ||
/// </summary> | ||
/// <param name="pageNumber"></param> | ||
/// <param name="pageSize"></param> | ||
public PagingInfo(int pageNumber, int pageSize) | ||
{ | ||
PageNumber = pageNumber; | ||
PageSize = pageSize; | ||
} | ||
/// <summary> | ||
/// 当前有多少页【只读】 | ||
/// </summary> | ||
public long PageCount => PageSize == 0 ? 0 : (Count + PageSize - 1) / PageSize; | ||
/// <summary> | ||
/// 是否有上一页【只读】 | ||
/// </summary> | ||
public bool HasPrevious => PageNumber > 1 && PageNumber <= PageCount; | ||
/// <summary> | ||
/// 是否有下一页【只读】 | ||
/// </summary> | ||
public bool HasNext => PageNumber < PageCount; | ||
/// <summary> | ||
/// 是否在第一页【只读】 | ||
/// </summary> | ||
public bool IsFrist => PageNumber == 1; | ||
/// <summary> | ||
/// 是否在最后一页【只读】 | ||
/// </summary> | ||
public bool IsLast => PageNumber == PageCount; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
using Microsoft.AspNetCore; | ||
using Microsoft.Extensions.Hosting; | ||
using Microsoft.AspNetCore.Hosting; | ||
|
||
namespace SkyApm.Sample.FreeSqlSqlite | ||
{ | ||
public class Program | ||
{ | ||
public static void Main(string[] args) | ||
{ | ||
BuildHost(args).Run(); | ||
} | ||
|
||
public static IHost BuildHost(string[] args) => | ||
Host.CreateDefaultBuilder(args) | ||
.ConfigureWebHostDefaults(builder => | ||
{ | ||
builder.UseStartup<Startup>(); | ||
}).Build(); | ||
|
||
} | ||
} |
27 changes: 27 additions & 0 deletions
27
sample/SkyApm.Sample.FreeSql/Properties/launchSettings.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
{ | ||
"iisSettings": { | ||
"windowsAuthentication": false, | ||
"anonymousAuthentication": true, | ||
"iisExpress": { | ||
"applicationUrl": "http://localhost:5000/", | ||
"sslPort": 0 | ||
} | ||
}, | ||
"profiles": { | ||
"IIS Express": { | ||
"commandName": "IISExpress", | ||
"launchBrowser": true, | ||
"environmentVariables": { | ||
"ASPNETCORE_ENVIRONMENT": "Development" | ||
} | ||
}, | ||
"SkyApm.Sample.FreeSqlSqlite": { | ||
"commandName": "Project", | ||
"launchBrowser": true, | ||
"environmentVariables": { | ||
"ASPNETCORE_ENVIRONMENT": "Development" | ||
}, | ||
"applicationUrl": "http://localhost:5000/" | ||
} | ||
} | ||
} |
29 changes: 29 additions & 0 deletions
29
sample/SkyApm.Sample.FreeSql/SkyApm.Sample.FreeSqlSqlite.csproj
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
<Project Sdk="Microsoft.NET.Sdk.Web"> | ||
<PropertyGroup> | ||
<TargetFrameworks>netcoreapp3.1;net5.0;net6.0</TargetFrameworks> | ||
</PropertyGroup> | ||
<ItemGroup> | ||
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.3" /> | ||
<PackageReference Include="FreeSql" Version="3.0.100" /> | ||
<PackageReference Include="FreeSql.Provider.Sqlite" Version="3.0.100" /> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<ProjectReference Include="..\..\src\SkyApm.Agent.AspNetCore\SkyApm.Agent.AspNetCore.csproj" /> | ||
<ProjectReference Include="..\..\src\SkyApm.Diagnostics.FreeSql\SkyApm.Diagnostics.FreeSql.csproj" /> | ||
|
||
</ItemGroup> | ||
<ItemGroup> | ||
<Content Update="appsettings.json"> | ||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory> | ||
<CopyToOutputDirectory>Always</CopyToOutputDirectory> | ||
</Content> | ||
<Content Update="appsettings.Development.json"> | ||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory> | ||
<CopyToOutputDirectory>Always</CopyToOutputDirectory> | ||
</Content> | ||
<Content Update="skyapm.json"> | ||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory> | ||
<CopyToOutputDirectory>Always</CopyToOutputDirectory> | ||
</Content> | ||
</ItemGroup> | ||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
using Microsoft.AspNetCore.Builder; | ||
using Microsoft.Extensions.Configuration; | ||
using Microsoft.Extensions.DependencyInjection; | ||
using Microsoft.Extensions.Logging; | ||
using FreeSql; | ||
using SkyApm.Diagnostics.FreeSql; | ||
using SkyApm.Sample.FreeSqlSqlite.Entitys; | ||
using System; | ||
using System.Collections.Generic; | ||
using SkyApm.Utilities.DependencyInjection; | ||
|
||
namespace SkyApm.Sample.FreeSqlSqlite | ||
{ | ||
public class Startup | ||
{ | ||
private readonly string[] Titles = new string[] { "GetAway", "Candy", "DreamHeaven"}; | ||
public Startup(IConfiguration configuration) | ||
{ | ||
Configuration = configuration; | ||
|
||
Fsql = new FreeSql.FreeSqlBuilder() | ||
.UseConnectionString(FreeSql.DataType.Sqlite, @"DataSource=:memory:;Pooling=true;Max Pool Size=10") | ||
.UseAutoSyncStructure(true) | ||
.Build(); | ||
InitData(); | ||
Fsql.Aop.CurdAfter += (s, e) => | ||
{ | ||
if (e.ElapsedMilliseconds > 200) | ||
{ | ||
//记录日志 | ||
//发送短信给负责人 | ||
} | ||
}; | ||
|
||
|
||
} | ||
|
||
public IConfiguration Configuration { get; } | ||
public IFreeSql Fsql { get; } | ||
|
||
public void ConfigureServices(IServiceCollection services) | ||
{ | ||
services.AddSingleton<IFreeSql>(Fsql); | ||
services.AddControllers(); | ||
services.AddSkyApmExtensions(); | ||
services.AddSkyAPM((e) => | ||
{ | ||
e.AddFreeSql(Fsql); | ||
}); | ||
} | ||
|
||
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) | ||
{ | ||
|
||
app.UseHttpMethodOverride(new HttpMethodOverrideOptions { FormFieldName = "X-Http-Method-Override" }); | ||
app.UseDeveloperExceptionPage(); | ||
app.UseRouting(); | ||
app.UseEndpoints(a => a.MapControllers()); | ||
} | ||
|
||
|
||
public void InitData() | ||
{ | ||
const int count= 10000; | ||
var rand = new Random(); | ||
var songs = new List<Song>(count); | ||
for (int i = 0; i < count; i++) | ||
{ | ||
songs.Add(new Song() { Id = i + 1, Title = Titles[rand.Next(Titles.Length - 1)] }); | ||
|
||
} | ||
Fsql.Insert<Song>(songs).ExecuteIdentity(); | ||
|
||
|
||
} | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
{ | ||
"Logging": { | ||
"IncludeScopes": false, | ||
"Debug": { | ||
"LogLevel": { | ||
"Default": "Warning" | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
{ | ||
"Logging": { | ||
"LogLevel": { | ||
"Default": "Warning" | ||
} | ||
}, | ||
"AllowedHosts": "*" | ||
} |
Oops, something went wrong.