全部產品
Search
文件中心

Application Real-Time Monitoring Service:將Managed Service for OpenTelemetry控制台頁面嵌入自建Web應用

更新時間:Dec 24, 2024

如需在自建Web應用中免登入查看Managed Service for OpenTelemetry控制台的頁面,您可將Managed Service for OpenTelemetry控制台嵌入自建Web應用,以此避免系統間的來回切換。

教程概述

預期結果

參照本教程的方法進行實際操作後將實現以下效果:

  • 可登入您的自有系統並瀏覽嵌入的應用列表、應用詳情、調用查詢等頁面。

  • 可隱藏Managed Service for OpenTelemetry頁面的頂部導覽列和左側導覽列。

  • 可通過存取控制RAM系統控制操作許可權,例如將完整許可權改為唯讀許可權等。

訪問流程

使用本教程所述方法訪問Managed Service for OpenTelemetry頁面的流程如圖所示。

步驟一:建立RAM使用者並添加許可權

首先使用阿里雲帳號建立RAM使用者並為其添加調用STS服務扮演RAM角色的許可權。

  1. 使用阿里雲帳號(主帳號)或Resource Access Management員登入RAM控制台

  2. 在左側導覽列,選擇身份管理 > 使用者

  3. 使用者頁面,單擊建立使用者

    image

  4. 建立使用者頁面的使用者帳號資訊地區框中,輸入登入名稱稱顯示名稱。在訪問方式地區框中,勾選使用永久 AccessKey 訪問,並單擊確定

    重要

    RAM會自動為RAM使用者建立AccessKey(API存取金鑰)。出於安全考慮,RAM控制台只提供一次查看或下載AccessKeySecret的機會,即建立AccessKey時,請務必將AccessKeySecret記錄到安全的地方。

  5. 使用者頁面,單擊目標RAM使用者操作列的添加許可權

    image

    您也可以選中多個RAM使用者,單擊使用者列表下方的添加許可權,為RAM使用者大量授權。

  6. 新增授權面板,為RAM使用者添加許可權。

    1. 選擇資源範圍。

    2. 選擇授權主體。

      授權主體即需要添加許可權的RAM使用者。系統會自動選擇當前的RAM使用者。

    3. 選擇權限原則AliyunSTSAssumeRoleAccess

    4. 單擊確認新增授權

  7. 單擊關閉

步驟二:建立RAM角色並添加許可權

接下來建立RAM角色並為其添加訪問Managed Service for OpenTelemetry控制台的許可權。上一步建立的RAM使用者將會扮演該RAM角色訪問Managed Service for OpenTelemetry控制台。

  1. 使用Resource Access Management員登入RAM控制台

  2. 在左側導覽列,選擇身份管理 > 角色

  3. 角色頁面,單擊建立角色

    image

  4. 建立角色面板中執行以下操作。

    1. 選擇類型頁面的選擇可信實體類型地區框中選擇阿里雲帳號,並單擊下一步

    2. 配置角色頁面的角色名稱文字框內輸入角色名稱,並單擊完成

    3. 建立完成頁面上單擊為角色授權

  5. 添加許可權面板的選擇許可權地區框中,通過關鍵字搜尋需要添加的權限原則,並單擊權限原則將其添加至右側的已選擇列表中,然後單擊確定

    Add Permission for Role

    • 如需添加Managed Service for OpenTelemetry的完整許可權,則添加AliyunTracingAnalysisFullAccess

    • 如需添加Managed Service for OpenTelemetry的唯讀許可權,則添加AliyunTracingAnalysisReadOnlyAccess

  6. 添加許可權面板的授權結果頁面上,查看授權資訊摘要,並單擊完成

步驟三:擷取臨時AccessKey和Token

登入自建Web後,在Web服務端調用STS AssumeRole介面擷取臨時AccessKey和Token,即臨時身份。請選擇一種方式調用該介面:

請注意,在範例程式碼中,您首先需要將以下參數替換為真實的值。

String akId = "<accessKeyId>";
String ak = "<accessKeySecret>";
String roleArn = "<roleArn>";

其中,<accessKeyId><accessKeySecret>是步驟一中建立的使用者的AccessKeyId和AccessKeySecret。擷取操作,請參見建立AccessKey

Example AccessKey

<roleArn>是準備工作中建立的RAM角色的標識ARN,可在RAM控制台的角色基本資料頁面擷取。

Example ARN

步驟四:擷取登入Token

在通過STS AssumeRole介面擷取臨時AccessKey和Token後,調用登入服務介面擷取登入Token。

重要

STS返回的安全Token中可能包含特殊字元,請對特殊字元進行URL編碼後再輸入。

請求範例:

http://signin4service.aliyun.com/federation?Action=GetSigninToken
    &AccessKeyId=<STS返回的臨時AccessKeyId>
    &AccessKeySecret=<STS返回的臨時AccessKeySecret>
    &SecurityToken=<STS返回的安全Token>
說明

如果為虛商接入,則還需添加&TicketType=mini參數。

步驟五:產生免登入連結

利用擷取到的登入Token與待嵌入的Managed Service for OpenTelemetry控制台頁面連結產生免登入訪問連結,以最終實現在自建Web中免登入訪問Managed Service for OpenTelemetry控制台頁面的目的。

說明

由於Token有效期間為3小時,建議在自建Web應用中將連結設定為每次請求時產生新登入Token,通過302請求返回進行跳轉。

  1. Managed Service for OpenTelemetry控制台擷取待嵌入的控制台頁面連結。例如杭州地區的應用列表頁面的連結為:

    https://tracing-analysis.console.aliyun.com/?hideTopbar=true&hideSidebar=true#/appList/cn-hangzhou
    說明

    將hideTopbar設為true表示隱藏頂部導覽列,將hideSidebar設為true表示隱藏左側導覽列。

  2. 利用步驟二中擷取到的登入Token與Managed Service for OpenTelemetry控制台頁面連結產生免登入訪問連結。 請求範例:

    http://signin.aliyun.com/federation?Action=Login
        &LoginUrl=<登入失效跳轉的地址,一般配置為自建Web配置302跳轉的URL>
        &Destination=<可觀測鏈路 OpenTelemetry 版控制台頁面連結>
        &SigninToken=<擷取到的登入Token>

執行結果

登入自建Web應用後,可見嵌入的Managed Service for OpenTelemetry控制台頁面效果如下圖所示:

Example Result of Embedding

操作範例

本教程的範例程式碼基於Java SDK,以嵌入Managed Service for OpenTelemetry控制台的應用列表為例。

擷取範例程式碼