前言
在前一篇「使用 OpenTracing - Jaeger (BFv3 使用 Fody)」,我們使用 MethodBoundaryAspect.Fody 來處理 OpenTracing 的程式碼,但是在有些 async 及 Overloading methods 時,會有修改 il 出錯而無法建置的狀況。 所以我們可以改用 PostSharp 的 OnMethodBoundaryAspect 來處理就沒有問題了。
Hello! 我是 RM
在前一篇「使用 OpenTracing - Jaeger (BFv3 使用 Fody)」,我們使用 MethodBoundaryAspect.Fody 來處理 OpenTracing 的程式碼,但是在有些 async 及 Overloading methods 時,會有修改 il 出錯而無法建置的狀況。 所以我們可以改用 PostSharp 的 OnMethodBoundaryAspect 來處理就沒有問題了。
今天在執行程式時,居然噴「Inheritance security rules violated by type: ‘System.Net.Http.WebRequestHandler’.」的錯誤。
在前一篇 使用 OpenTracing - Jaeger (BFv3 使用 Dynamic Proxy) 中,我們透過 Dynamic Proxy 的方式去封裝那些需要記錄的物件。
雖然使用 Dynamic Proxy 的方式,可以讓我們將那些 OpenTracing 的範本程式碼抽離出來,但是在專案還是需要做一些調整,例如使用 Autofac, 修改 Method 為 virtual methods 。 這對於沒有使用 Dependency Injection 的系統來說,是一個負擔。 那是否可以做到像 dynaTrace 這樣,直接寫到 bytecode 之中呢?
在前一篇使用 OpenTracing - Jaeger之中,我們介紹如何快速安裝及透過程式將相關的資訊記錄到 Jaeger 系統之中。
一個使用者的操作,後端可能會串連很多個服務,如下圖,
好久之前發佈了一篇 [ASP.NET]讓 Web 專案在 IIS7 中可運行 Forms Authentication (表單驗證) 及 Windows 驗證,但文件中的 Source 及 DLL Link 都找不到了。
而之前放在 dotblogs 上的檔案也因為轉換平台後,在 dotblogs 的附件也都不見了。
隨著系統逾來逾大、逾複雜,為了維運方便,可能會將這些拆分成不同的 Service 。
但從使用者一個 Request 進來後,從前端、後端各 Service 再到 Database,如果有效能問題時,大家要如何查找問題呢? SQL Profiler, Fiddler, 寫 Log ? 或是使用一些工具來查看效能問題,例如 Dynatrace ?
現在大家有另外一個好選擇,就是使用 OpenTracing , 在程式中加入一些 Tracing 的資料(使用 OpenTracing 訂的 api,再看您要使用那一個 Support OpenTracing 的 Tracer 去註冊它。
到時候就可以透過時間軸的角度來看到底那裡有效能問題,那裡有錯誤。
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true