miniprofiler的使用


miniprofiler的详细介绍请看这里http://miniprofiler.com/。(可以对数据库和页面等监控如 ado ef mvc mongodb)

本文以nancy和petapoco为示例


安装

Install-Package MiniProfiler

你也可以使用其他的类库,如MiniProfiler.EF6 MiniProfiler.WCF MiniProfiler.MongoDb MiniProfiler.MongoDb之类的。我用的是petapoco,所以用Install-Package MiniProfiler就可以了

数据库部分

在petapoco.cs的类中修改如下

 public void OpenSharedConnection()
{
if (_sharedConnectionDepth == 0)
{
_sharedConnection = _factory.CreateConnection();
_sharedConnection.ConnectionString = _connectionString;
//MiniProfiler 加入MiniProfiler
_sharedConnection= new StackExchange.Profiling.Data.ProfiledDbConnection( (DbConnection) _sharedConnection , MiniProfiler.Current); if (_sharedConnection.State == ConnectionState.Broken)
{ _sharedConnection.Close(); } if (_sharedConnection.State == ConnectionState.Closed)
{ _sharedConnection.Open(); } _sharedConnection = OnConnectionOpened(_sharedConnection); if (KeepConnectionAlive)
{ _sharedConnectionDepth++; } // Make sure you call Dispose
} _sharedConnectionDepth++;
}

其实就是替换_sharedConnection= new StackExchange.Profiling.Data.ProfiledDbConnection( (DbConnection) _sharedConnection , MiniProfiler.Current);

官方的文档

public static DbConnection GetOpenConnection()
{
var cnn = CreateRealConnection(); // A SqlConnection, SqliteConnection ... or whatever // wrap the connection with a profiling connection that tracks timings
return new StackExchange.Profiling.Data.ProfiledDbConnection(cnn, MiniProfiler.Current);
}

Bootstrapper部分 RequestStartup的方法中如下:

  protected override void RequestStartup(TinyIoCContainer requestContainer, IPipelines pipelines, NancyContext context)
{ //MiniProfiler
MiniProfiler.Start();
//请求结束后,停止miniprofiler
pipelines.AfterRequest.AddItemToEndOfPipeline(
(ctx) =>
{
MiniProfiler.Stop();
});
}

module部分

假设你的module叫MiniProfiler。

主要字符串的编码。

  Get["/MiniProfiler"] = _ =>
{
var renderStr = StackExchange.Profiling.MiniProfiler.RenderIncludes().ToString();
return View["MiniProfiler", renderStr];
};

视图部分

主要字符串的编码。Html.Raw是htmldecode的作用

@inherits Nancy.ViewEngines.Razor.NancyRazorViewBase<dynamic>
@{
Layout = null;
}
<!doctype html>
<html lang="zh-cn">
<head>
</head>
<body>
@Html.Raw(Model)
</body>
</html>

查看 http://localhost:9777/miniprofiler

结果类似如下

30.0 ms
6.6 ms
1.1 ms
17.5 ms
14114.3 ms
537.0 ms

点击进去可以查看加载时间。以及调用的sql语句等。

miniprofiler的对数据库的监测使用。以nancy,petapoco为例的更多相关文章

  1. Atitit.软件仪表盘(4)--db数据库子系统-监测

    Atitit.软件仪表盘(4)--db数据库子系统-监测 连接数::: 死锁表列表:死锁基础列表(最近几条记录,时间,sql等) 3.对服务器进行监控,获取CUP,I/O使用情况   4.对数据库进行 ...

  2. 数据库性能监测工具——SQL Server Profiler

    使用SQL Server Profiler 进行sql监控需要一些设置: 其他的就是进行分析了~ 清除SQL SERVER缓存 常用的方法: DBCC DROPCLEANBUFFERS 从缓冲池中删除 ...

  3. mysql数据库数据监测

    #!/bin/bash MYSQL="mysql -h10.10.10.10 -P8036 -uusername -ppassword --default-character-set=utf ...

  4. Oracle数据库无法向listener注册的解决一例

    当机器的IP地址改变了,或者机器名改变后, 动态注册可能会失败. 运行 lsnrctl status时,无论等待多久,都会发生:no services 这样的信息. 此时,最好的解决方法,就是删除原有 ...

  5. MySQL数据库字符集由utf8修改为utf8mb4一例

    对于mysql 5.5 而言,如果不设定字符集,mysql默认的字符集是 latin1 拉丁文字符集: 为了统一管理和应用开发的方便,一般都会统一将操作系统,客户端,数据库各方面的字符集都设置为 ut ...

  6. java操作数据库,以页面显示学生信息为例

    该部分内容实现的功能主要是:从数据库中查询数据并展示到页面,在页面中新增数据信息,在页面中修改数据信息,在页面中删除数据信息. =================stuList.jsp======== ...

  7. 【原创】相对完整的一套以Jmeter作为工具的性能测试教程(接口性能测试,数据库性能测试以及服务器端性能监测)

    准备工作 jmeter3.1,为什么是3.1,因为它是要配合使用的serveragent所支持的最高版本,下载链接 https://pan.baidu.com/s/1dWu5Ym JMeterPlug ...

  8. ABP使用Miniprofiler监测EF

    在上篇教程中,我们在WebApi项目中集成了Miniprofiler,本篇文章中,将继续集成Miniprofiler EF6,以实时监测分析EF的执行语句.执行效率等.Miniprofiler会针对E ...

  9. PYTHON--定期监测服务器端口,并将结果写入MYSQL

    定时监测服务器端口,然后将结果入写数据库. 监测用NC命令,入库就用PYTHON的MYSQL模块 再调一个基于函数的多线程... 妥妥的.. 是网上两个功能的合成.. 俺不生产代码,俺只是BAIDU的 ...

随机推荐

  1. java环境变量的设置

    java安装好后需要配置一下环境变量,配置方法如下: 1.在系统变量里添加两条记录: 1)变量名:JAVA_HOME,变量值为java安装路径,如:C:\Program Files\Java\jdk1 ...

  2. python 调用封装好的模块

    有些时候,我们写了些通用的模块,想调用的时候,该怎么操作呢? 以下是我写的一个简单的登录作为例子: 在cla.py中定义了一个Login_gues.pyt(带参数的实例):在cc.py下调用这个; 1 ...

  3. SourceTree如何连接ssh的仓库地址,这里记录的是客户端需要做的事

    1. 2. 打开命令行以后输入ssh-keygen -t rsa -C "example@example.com"',这个地方输入的是你注册gitlab所使用的邮箱.按回车,之后还 ...

  4. appframework3.0(JQmobi)入门教程

    2015-03-31 22:02 2011人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. appframework3.0好像是3月24日发布的,今天31号,发现和 ...

  5. C# Linq 交集、并集、差集、去重

    using System.Linq;         List<string> ListA = new List<string>(); List<string> L ...

  6. final阶段团队贡献分分配

    小组名称:nice! 小组成员:李权 于淼 刘芳芳 韩媛媛 宫丽君 项目内容:约跑app 代码git的地址:https://git.coding.net/muziliquan/niceGroup.gi ...

  7. dd-wrt 定时重连 pppoe 更换ip地址

    因为做代理,IP时常被封的原因,所以,需要每天定时重启路由器,重启路由器影响太大,所以重新拨号是一个更好的选择. 在dd-wrt里面,杀掉pppoe服务进程就可以了,这个进程会自动重新启动,然后就相当 ...

  8. Sublime一键预览

    //chrome{ "keys": [ "f12" ], "command": "side_bar_files_open_with ...

  9. centos 配置 ssl服务

    使用的是appach 2.4.10 版本 各个版本配置不同 1.首先修改httpd.conf 文件 appach 安装目录下的 conf文件夹中找到 #LoadModule socache_shmcb ...

  10. wex5 实战 手指触屏插件 hammer的集成与优劣

    前言 前几天,给客户做了一个图片点击放大,很简单,客户说能不能双手指缩放图片呢? 想到了hammer,不管好用不好用,总得试. 网上居然没有像样的中文文档和成熟案例,有的文写的鬼都看不懂.还是自已动手 ...