將可觀測(cè)鏈路 OpenTelemetry 版控制臺(tái)頁面嵌入自建Web應(yīng)用
如需在自建Web應(yīng)用中免登錄查看可觀測(cè)鏈路 OpenTelemetry 版控制臺(tái)的頁面,您可將可觀測(cè)鏈路 OpenTelemetry 版控制臺(tái)嵌入自建Web應(yīng)用,以此避免系統(tǒng)間的來回切換。
教程概述
預(yù)期結(jié)果
參照本教程的方法進(jìn)行實(shí)際操作后將實(shí)現(xiàn)以下效果:
可登錄您的自有系統(tǒng)并瀏覽嵌入的應(yīng)用列表、應(yīng)用詳情、調(diào)用查詢等頁面。
可隱藏可觀測(cè)鏈路 OpenTelemetry 版頁面的頂部導(dǎo)航欄和左側(cè)導(dǎo)航欄。
可通過訪問控制RAM系統(tǒng)控制操作權(quán)限,例如將完整權(quán)限改為只讀權(quán)限等。
訪問流程
使用本教程所述方法訪問可觀測(cè)鏈路 OpenTelemetry 版頁面的流程如圖所示。
步驟一:創(chuàng)建RAM用戶并添加權(quán)限
首先使用阿里云賬號(hào)創(chuàng)建RAM用戶并為其添加調(diào)用STS服務(wù)扮演RAM角色的權(quán)限。
使用阿里云賬號(hào)(主賬號(hào))或RAM管理員登錄RAM控制臺(tái)。
在左側(cè)導(dǎo)航欄,選擇 。
在用戶頁面,單擊創(chuàng)建用戶。
在創(chuàng)建用戶頁面的用戶賬號(hào)信息區(qū)域框中,輸入登錄名稱和顯示名稱。在訪問方式區(qū)域框中,勾選Open API調(diào)用訪問,并單擊確定。
重要RAM會(huì)自動(dòng)為RAM用戶創(chuàng)建AccessKey(API訪問密鑰)。出于安全考慮,RAM控制臺(tái)只提供一次查看或下載AccessKeySecret的機(jī)會(huì),即創(chuàng)建AccessKey時(shí),請(qǐng)務(wù)必將AccessKeySecret記錄到安全的地方。
在用戶頁面,單擊目標(biāo)RAM用戶操作列的添加權(quán)限。
在添加權(quán)限面板的選擇權(quán)限區(qū)域框中,通過關(guān)鍵字搜索需要添加的權(quán)限策略AliyunSTSAssumeRoleAccess,并單擊權(quán)限策略將其添加至右側(cè)的已選擇列表中,然后單擊確定。
單擊確定。
單擊完成。
步驟二:創(chuàng)建RAM角色并添加權(quán)限
接下來創(chuàng)建RAM角色并為其添加訪問可觀測(cè)鏈路 OpenTelemetry 版控制臺(tái)的權(quán)限。上一步創(chuàng)建的RAM用戶將會(huì)扮演該RAM角色訪問可觀測(cè)鏈路 OpenTelemetry 版控制臺(tái)。
使用RAM管理員登錄RAM控制臺(tái)。
在左側(cè)導(dǎo)航欄,選擇 。
在角色頁面,單擊創(chuàng)建角色。
在創(chuàng)建角色面板中執(zhí)行以下操作。
在選擇類型頁面的選擇可信實(shí)體類型區(qū)域框中選擇阿里云賬號(hào),并單擊下一步。
在配置角色頁面的角色名稱文本框內(nèi)輸入角色名稱,并單擊完成。
在創(chuàng)建完成頁面上單擊為角色授權(quán)。
在添加權(quán)限面板的選擇權(quán)限區(qū)域框中,通過關(guān)鍵字搜索需要添加的權(quán)限策略,并單擊權(quán)限策略將其添加至右側(cè)的已選擇列表中,然后單擊確定。
如需添加可觀測(cè)鏈路 OpenTelemetry 版的完整權(quán)限,則添加AliyunTracingAnalysisFullAccess。
如需添加可觀測(cè)鏈路 OpenTelemetry 版的只讀權(quán)限,則添加AliyunTracingAnalysisReadOnlyAccess。
在添加權(quán)限面板的授權(quán)結(jié)果頁面上,查看授權(quán)信息摘要,并單擊完成。
步驟三:獲取臨時(shí)AccessKey和Token
登錄自建Web后,在Web服務(wù)端調(diào)用STS AssumeRole接口獲取臨時(shí)AccessKey和Token,即臨時(shí)身份。請(qǐng)選擇一種方式調(diào)用該接口:
請(qǐng)注意,在示例代碼中,您首先需要將以下參數(shù)替換為真實(shí)的值。
String akId = "<accessKeyId>";
String ak = "<accessKeySecret>";
String roleArn = "<roleArn>";
其中,<accessKeyId>和<accessKeySecret>是步驟一中創(chuàng)建的用戶的AccessKeyId和AccessKeySecret。獲取操作,請(qǐng)參見創(chuàng)建AccessKey。
<roleArn>是準(zhǔn)備工作中創(chuàng)建的RAM角色的標(biāo)識(shí)ARN,可在RAM控制臺(tái)的角色基本信息頁面獲取。
步驟四:獲取登錄Token
在通過STS AssumeRole接口獲取臨時(shí)AccessKey和Token后,調(diào)用登錄服務(wù)接口獲取登錄Token。
STS返回的安全Token中可能包含特殊字符,請(qǐng)對(duì)特殊字符進(jìn)行URL編碼后再輸入。
請(qǐng)求樣例:
http://signin4service.aliyun.com/federation?Action=GetSigninToken
&AccessKeyId=<STS返回的臨時(shí)AccessKeyId>
&AccessKeySecret=<STS返回的臨時(shí)AccessKeySecret>
&SecurityToken=<STS返回的安全Token>
如果為虛商接入,則還需添加&TicketType=mini
參數(shù)。
步驟五:生成免登錄鏈接
利用獲取到的登錄Token與待嵌入的可觀測(cè)鏈路 OpenTelemetry 版控制臺(tái)頁面鏈接生成免登錄訪問鏈接,以最終實(shí)現(xiàn)在自建Web中免登錄訪問可觀測(cè)鏈路 OpenTelemetry 版控制臺(tái)頁面的目的。
由于Token有效期為3小時(shí),建議在自建Web應(yīng)用中將鏈接設(shè)置為每次請(qǐng)求時(shí)生成新登錄Token,通過302請(qǐng)求返回進(jìn)行跳轉(zhuǎn)。
在可觀測(cè)鏈路 OpenTelemetry 版控制臺(tái)獲取待嵌入的控制臺(tái)頁面鏈接。例如杭州地域的應(yīng)用列表頁面的鏈接為:
https://tracing-analysis.console.aliyun.com/?hideTopbar=true&hideSidebar=true#/appList/cn-hangzhou
說明將hideTopbar設(shè)為true表示隱藏頂部導(dǎo)航欄,將hideSidebar設(shè)為true表示隱藏左側(cè)導(dǎo)航欄。
利用步驟二中獲取到的登錄Token與可觀測(cè)鏈路 OpenTelemetry 版控制臺(tái)頁面鏈接生成免登錄訪問鏈接。 請(qǐng)求樣例:
http://signin.aliyun.com/federation?Action=Login &LoginUrl=<登錄失效跳轉(zhuǎn)的地址,一般配置為自建Web配置302跳轉(zhuǎn)的URL> &Destination=<可觀測(cè)鏈路 OpenTelemetry 版控制臺(tái)頁面鏈接> &SigninToken=<獲取到的登錄Token>
執(zhí)行結(jié)果
登錄自建Web應(yīng)用后,可見嵌入的可觀測(cè)鏈路 OpenTelemetry 版控制臺(tái)頁面效果如下圖所示:
操作樣例
本教程的示例代碼基于Java SDK,以嵌入可觀測(cè)鏈路 OpenTelemetry 版控制臺(tái)的應(yīng)用列表為例。