成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

手把手教你搭APM之Skywalking搭建指南(支持Java/C#/Node.js)

ingood / 2133人閱讀

摘要:通過跟蹤請求的處理過程,來對應用系統(tǒng)在前后端處理服務端調(diào)用的性能消耗進行跟蹤,關于的介紹可以看這個鏈接,大規(guī)模分布式系統(tǒng)的跟蹤系統(tǒng)作者刀把五鏈接來源知乎著作權歸作者所有。

手把手教你搭APM之Skywalking 前言

什么是APM?全稱:Application Performance Management

可以參考這里:

現(xiàn)代APM體系,基本都是參考Google的Dapper(大規(guī)模分布式系統(tǒng)的跟蹤系統(tǒng))的體系來做的。通過跟蹤請求的處理過程,來對應用系統(tǒng)在前后端處理、服務端調(diào)用的性能消耗進行跟蹤,關于Dapper的介紹可以看這個鏈接:Dapper,大規(guī)模分布式系統(tǒng)的跟蹤系統(tǒng) by bigbully

作者:刀把五
鏈接:https://www.zhihu.com/question/27994350/answer/118821214
來源:知乎
著作權歸作者所有。商業(yè)轉載請聯(lián)系作者獲得授權,非商業(yè)轉載請注明出處。

最早使用APM還是在攜程里面搬磚的時候,當時使用的是大宗點評網(wǎng)開源的dianping/cat框架.

后來到了新公司,因為歷史包袱有點多,追蹤性能問題太麻煩,用過收費的New Relic | Real-time insights for modern software ,newrelic按照CPU核數(shù)和內(nèi)存來收費,實在太貴了我們就放棄了.

再后來我們調(diào)研一下市面的其他方案,看到了這個知乎討論給了不少的東西.

有什么知名的開源apm(Application Performance Management)工具嗎?

當時看到naver/pinpoint 和apache/incubator-skywalking 都很不錯.

一個是韓國搜索團隊開源的,一個是國內(nèi)個人用戶開源,已經(jīng)到了apache孵化器了.

于是兩個都試用了一下, 最后由于那時候馬上考慮上分表分庫組件 sharding-jdbc-dangdang, skywalking也要對應的支持,所以決定用skywalking試試.

再后來又跑路了,不好意思給那邊留下坑就沒繼續(xù)搭建看. 到了新公司PHP/Python/Java什么都寫,開始兩三個月也沒管這個.

最近不是太忙了,新公司這邊服務端API暫時被我?guī)С闪薲otnet core技術棧,233...

同時發(fā)現(xiàn)當前用的EF框架偶爾會因為不小心就寫出了性能很差的SQL,測試環(huán)境基本看不出來,到了生產(chǎn)可能就炸.

前陣子看到dalao 傾竹 把dotnet core agent寫出來了, 于是爽歪歪就開始gang了.

開始搭建skywalking

github:incubator-skywalking

當前release版本為5.0RC2,最新版本6.X正在開發(fā)中.

所以當前我這里是基于5.0 RC2來搭建的.

官方向導方案在這里:incubator-skywalking/blob/5.x/docs/README.md

中文文檔在這里:incubator-skywalking/blob/5.x/docs/README_ZH.md

我這里今天還是全程docker部署.

以下操作來自JaredTan95/skywalking-docker dalao準備的docker部署.

預備條件:

docker

elasticsearch

啟動Elasticsearch
# Elasticsearch版本要求5.x

docker run -p 9200:9200 -p 9300:9300 -e cluster.name=elasticsearch -e xpack.security.enabled=false --name=elasticsearch --restart=always -d wutang/elasticsearch-shanghai-zone

啟動好了訪問一下 http://localhost:9200 看看,看到一下的內(nèi)容說明ES已經(jīng)正常啟動了.

{
    "name": "_PNUyiW",
    "cluster_name": "elasticsearch",
    "cluster_uuid": "",
    "version": {
        "number": "5.6.10",
        "build_hash": "b727a60",
        "build_date": "2018-06-06T15:48:34.860Z",
        "build_snapshot": false,
        "lucene_version": "6.6.1"
    },
    "tagline": "You Know, for Search"
}

接著使用 docker inspect elasticsearch |grep IPAddress 查看一下 elasticsearch 當前IP.

?  ? docker inspect elasticsearch |grep IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "",
                    "IPAddress": "172.27.0.2",
啟動 Skywalking UI + Skywalking collector

dalao wutang的wutang/skywalking-docker已經(jīng)把UI和collector打包到一個鏡像里面了,完全可以獨立安裝.

所以我這里采用的也是這個方案.

docker run -p 8080:8080 -p 10800:10800 -p 11800:11800 -p 12800:12800 -e ES_CLUSTER_NAME=elasticsearch -e ES_ADDRESSES=上一步拿到的elasticsearchIP:9300 -d wutang/skywalking-docker:5.x

啟動好了之后打開 localhost:8080,如果UI頁面沒有500/404錯誤,說明整個系統(tǒng)已經(jīng)正常啟動了.

PS:默認賬號密碼是:admin admin,可以在docker run指定 UI_ADMIN_PASSWORD環(huán)境變量自定義密碼.

如果有錯誤的話,大概率是ES沒有連上,檢查一下ES是不是還活著,再不行就進到容器里面看日志.日志默認路徑:/apache-skywalking-apm-incubating/logs

Agent接入

當前已經(jīng)有Java/C#(dotnet core)/Node.js的Agent了.

對應的話Java支持是最多的,其他兩個我看下來基本就是主流比較多的一些框架都基本有了.

對應agent框架鏈接:

dotnet core: OpenSkywalking/skywalking-netcore

node.js:OpenSkywalking/skywalking-nodejs

理論上應該遵循h(huán)ttp://opentracing.io/ API標準的.

Java agent 主倉庫就有,直接去看release即可.

今天我們肯定是用dotnet core 啦.

dotnet core當前支持的庫和中間件有下面這些:

ASP.NET Core

.NET Core BCL types (HttpClient and SqlClient)

EntityFrameworkCore

Npgsql.EntityFrameworkCore.PostgreSQL

Pomelo.EntityFrameworkCore.MySql

CAP

嗯,該有的都有了.

先引入一下SkyWalking.AspNetCore的Package.

dotnet add package SkyWalking.AspNetCore --version 0.3.0

酌情新增 SkyWalking.Diagnostics.EntityFrameworkCore, SkyWalking.Diagnostics.HttpClient, SkyWalking.Diagnostics.EntityFrameworkCore.Npgsql,SkyWalking.Diagnostics.EntityFrameworkCore.Pomelo.MySql 等等...

或者直接在xxx.csproj 新增下面這些包.

    
    
    
    
    

然后在 Startup.cs的ConfigureServices 方法中添加引用

// using SkyWalking.AspNetCore;
// using SkyWalking.Diagnostics.EntityFrameworkCore;
// using SkyWalking.Diagnostics.HttpClient;
// using SkyWalking.Diagnostics.SqlClient;

 services.AddSkyWalking(option =>
            {
                option.ApplicationCode = "my-first-api";
                option.DirectServers = "127.0.0.1:11800";
                // 每三秒采樣的Trace數(shù)量,-1 為全部采集
                option.SamplePer3Secs = -1;
            }).AddEntityFrameworkCore(c => { c.AddPomeloMysql(); })
            .AddHttpClient();

接著啟動應用.

看到有類似的日志輸入,說明已經(jīng)應用已經(jīng)正常連接到SkyWalking了.

info: SkyWalking.Remote.GrpcApplicationService[0]
      Register application instance success. [applicationInstanceId] = 31
SkyWalking.Remote.GrpcApplicationService:Information: Register application instance success. [applicationInstanceId] = 31
info: SkyWalking.Remote.GrpcApplicationService[0]
      Register application instance success. [applicationInstanceId] = 31

這時候我們打開http://localhost:8080/#/monitor/dashboard

可以看到APP已經(jīng)有數(shù)量了.

接著我們訪問一下已有的API/Web頁面,就能看到對應的信息了.

點一下對應的URL.

http client請求(其實是查詢ES):

Topology Map

其他的一些功能就看自己玩了.

本期結束...

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/77232.html

相關文章

  • 后端API從入門到放棄指北

    摘要:菜鳥教程框架中文手冊入門目標使用搭建通過對數(shù)據(jù)增刪查改沒了純粹占行用的拜 后端API入門學習指北 了解一下一下概念. RESTful API標準] 所有的API都遵循[RESTful API標準]. 建議大家都簡單了解一下HTTP協(xié)議和RESTful API相關資料. 阮一峰:理解RESTful架構 阮一峰:RESTful API 設計指南 RESTful API指南 依賴注入 D...

    sf190404 評論0 收藏0
  • 后端API從入門到放棄指北

    摘要:菜鳥教程框架中文手冊入門目標使用搭建通過對數(shù)據(jù)增刪查改沒了純粹占行用的拜 后端API入門學習指北 了解一下一下概念. RESTful API標準] 所有的API都遵循[RESTful API標準]. 建議大家都簡單了解一下HTTP協(xié)議和RESTful API相關資料. 阮一峰:理解RESTful架構 阮一峰:RESTful API 設計指南 RESTful API指南 依賴注入 D...

    Airmusic 評論0 收藏0
  • 后端API從入門到放棄指北

    摘要:菜鳥教程框架中文手冊入門目標使用搭建通過對數(shù)據(jù)增刪查改沒了純粹占行用的拜 后端API入門學習指北 了解一下一下概念. RESTful API標準] 所有的API都遵循[RESTful API標準]. 建議大家都簡單了解一下HTTP協(xié)議和RESTful API相關資料. 阮一峰:理解RESTful架構 阮一峰:RESTful API 設計指南 RESTful API指南 依賴注入 D...

    Jeffrrey 評論0 收藏0
  • 個人分享--web前端學習資源分享

    摘要:前言月份開始出沒社區(qū),現(xiàn)在差不多月了,按照工作的說法,就是差不多過了三個月的試用期,準備轉正了一般來說,差不多到了轉正的時候,會進行總結或者分享會議那么今天我就把看過的一些學習資源主要是博客,博文推薦分享給大家。 1.前言 6月份開始出沒社區(qū),現(xiàn)在差不多9月了,按照工作的說法,就是差不多過了三個月的試用期,準備轉正了!一般來說,差不多到了轉正的時候,會進行總結或者分享會議!那么今天我就...

    sherlock221 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<