Compare commits
124 Commits
cfw_enable
...
main
Author | SHA1 | Date | |
---|---|---|---|
8322f976ef | |||
9b5528e1dc | |||
80d5b48594 | |||
16c5f60c90 | |||
1655d41c64 | |||
32524d3c9e | |||
808079c203 | |||
eda4b9181d | |||
d28eee854d | |||
5bd73762a9 | |||
d057c0b485 | |||
4aac5cfe88 | |||
ec0b45029f | |||
d8a2842a27 | |||
e92285b9a2 | |||
29d82e98bd | |||
e3123a5bf6 | |||
e98ae60365 | |||
854e7361d2 | |||
d48c6004e4 | |||
ffd32f07e7 | |||
f3715d9cc9 | |||
1f3e1fa49f | |||
f5b629cc78 | |||
d97aea4dd2 | |||
7e6f07b803 | |||
f7b9a88535 | |||
64197bfe40 | |||
a9c2700be7 | |||
4d053b2368 | |||
d8fd72c894 | |||
94307ab0f0 | |||
f0e04482a8 | |||
fe0a0a40c4 | |||
83590bf1cd | |||
da6ca4fb3c | |||
c5b496f0d7 | |||
1675aa54b7 | |||
9a8e59c9e5 | |||
49ac6fa9ce | |||
32c06a10a2 | |||
22b4fb765a | |||
1588318a68 | |||
03628e607a | |||
917aa4f235 | |||
97b6825626 | |||
8feb9db543 | |||
af4883ad8b | |||
0a6e0e835a | |||
4fb177c9c8 | |||
fdd43c552e | |||
0e5fae25ff | |||
e2322cfa17 | |||
18d6c31e36 | |||
c7583a6c9d | |||
53ff2fdf54 | |||
9b4a7025c6 | |||
2ce446ea3c | |||
73adfe6d50 | |||
d62a949ca4 | |||
3ae8fd627a | |||
5f74a04a37 | |||
b1e64d0a94 | |||
3fa966049f | |||
ca9677b121 | |||
c831aa1742 | |||
ce1d5fd717 | |||
5bb11b7c7f | |||
c7cf8ac24f | |||
d7316db527 | |||
3de6842994 | |||
37b97ffc06 | |||
ef239b7410 | |||
9457035d64 | |||
74ab5c222e | |||
4e4b2d5f6d | |||
152a7d9381 | |||
b4218152d3 | |||
68e5cd0687 | |||
01222743d0 | |||
38e4c01e6c | |||
636b3410f4 | |||
9deea9ad96 | |||
d9e750baf4 | |||
52ab2e2398 | |||
86fb05065f | |||
99a2d77599 | |||
11d29221d4 | |||
aafad2c14a | |||
9a9e02c671 | |||
2dfeaff8f9 | |||
cde32bf227 | |||
f51ec873f3 | |||
c236478734 | |||
d8b689ecd2 | |||
a5e72d5590 | |||
b37b65e78f | |||
8ba86cabc9 | |||
95132e24fc | |||
a6e39ff5b3 | |||
be55bdb9f8 | |||
3788ba3444 | |||
8a03a26aba | |||
1e074c969a | |||
cf1007c84e | |||
2195db241c | |||
ccbf63b495 | |||
27019c2991 | |||
e6fa411af0 | |||
57dcff6915 | |||
483e5cc6cc | |||
12dd64efc7 | |||
bc47653338 | |||
3d88b677fd | |||
d05287d5d6 | |||
95f84e7c3b | |||
44a5966759 | |||
28eafd163b | |||
cfc48b3aed | |||
4edaa4a4cc | |||
b9f5622cca | |||
c8b631e1db | |||
9c5f69ed88 | |||
a03981f7be |
185
docs/apiu/guidelines/ALL_META.TXT.json
Normal file
92
docs/apiu/guidelines/CLASS.TXT.json
Normal file
@ -0,0 +1,92 @@
|
||||
[
|
||||
{
|
||||
"desc":"API requests sent by third-party applications to public cloud services must be authenticated using signatures.This document describes the signature procedure, provides sa",
|
||||
"product_code":"apiug",
|
||||
"title":"Overview",
|
||||
"uri":"apig-en-api-180328001.html",
|
||||
"doc_type":"guidelines",
|
||||
"p_code":"",
|
||||
"code":"1"
|
||||
},
|
||||
{
|
||||
"desc":"API Gateway provides RESTful APIs.REST provides APIs to create, query, update, delete, and access service resources.A REST API request/response pair is divided into the f",
|
||||
"product_code":"apiug",
|
||||
"title":"Overview of REST APIs",
|
||||
"uri":"apig-en-api-180328002.html",
|
||||
"doc_type":"guidelines",
|
||||
"p_code":"",
|
||||
"code":"2"
|
||||
},
|
||||
{
|
||||
"desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.",
|
||||
"product_code":"apiug",
|
||||
"title":"Calling APIs",
|
||||
"uri":"apig-en-api-180925010.html",
|
||||
"doc_type":"guidelines",
|
||||
"p_code":"",
|
||||
"code":"3"
|
||||
},
|
||||
{
|
||||
"desc":"Obtain the required information before calling APIs.A project ID needs to be specified in the URIs of some APIs. Therefore, you need to obtain the project ID before calli",
|
||||
"product_code":"apiug",
|
||||
"title":"Obtaining Required Information",
|
||||
"uri":"apig-en-api-180328009.html",
|
||||
"doc_type":"guidelines",
|
||||
"p_code":"3",
|
||||
"code":"4"
|
||||
},
|
||||
{
|
||||
"desc":"If API requests are authenticated using tokens, the request header must contain X-Auth-Token (token information).This section describes how to call an API for token authe",
|
||||
"product_code":"apiug",
|
||||
"title":"Token Authentication",
|
||||
"uri":"apig-en-api-180328003.html",
|
||||
"doc_type":"guidelines",
|
||||
"p_code":"3",
|
||||
"code":"5"
|
||||
},
|
||||
{
|
||||
"desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.",
|
||||
"product_code":"apiug",
|
||||
"title":"AK/SK Authentication",
|
||||
"uri":"apig-en-api-180328004.html",
|
||||
"doc_type":"guidelines",
|
||||
"p_code":"3",
|
||||
"code":"6"
|
||||
},
|
||||
{
|
||||
"desc":"Log in to the management console.Click the username and choose My Credential from the drop-down list.Click Access Keys.Click Add Access Keys to switch to the Add Access K",
|
||||
"product_code":"apiug",
|
||||
"title":"Generating an AK and SK",
|
||||
"uri":"apig-en-api-180328005.html",
|
||||
"doc_type":"guidelines",
|
||||
"p_code":"6",
|
||||
"code":"7"
|
||||
},
|
||||
{
|
||||
"desc":"Introduce the API Gateway signing SDK in the project.Download the API Gateway signing tool from the following link:https://apig-demo.obs.eu-de.otc.t-systems.com/java/java",
|
||||
"product_code":"apiug",
|
||||
"title":"Signing a Request",
|
||||
"uri":"apig-en-api-180328006.html",
|
||||
"doc_type":"guidelines",
|
||||
"p_code":"6",
|
||||
"code":"8"
|
||||
},
|
||||
{
|
||||
"desc":"This section describes how to call the API of a public cloud service by using Eclipse.The following code shows how to sign a request and how to use an HTTP client to send",
|
||||
"product_code":"apiug",
|
||||
"title":"Sample Code",
|
||||
"uri":"apig-en-api-180328008.html",
|
||||
"doc_type":"guidelines",
|
||||
"p_code":"6",
|
||||
"code":"9"
|
||||
},
|
||||
{
|
||||
"desc":"Table 1 describes common status codes.",
|
||||
"product_code":"apiug",
|
||||
"title":"HTTP Status Codes",
|
||||
"uri":"apig-en-api-180328012.html",
|
||||
"doc_type":"guidelines",
|
||||
"p_code":"",
|
||||
"code":"10"
|
||||
}
|
||||
]
|
3
docs/apiu/guidelines/PARAMETERS.txt
Normal file
@ -0,0 +1,3 @@
|
||||
version=""
|
||||
language="en-us"
|
||||
type=""
|
7
docs/apiu/guidelines/apig-en-api-180328001.html
Normal file
@ -0,0 +1,7 @@
|
||||
<a name="apig-en-api-180328001"></a><a name="apig-en-api-180328001"></a>
|
||||
|
||||
<h1 class="topictitle1">Overview</h1>
|
||||
<div id="body1521449602954"><p id="apig-en-api-180328001__p7945016142655">API requests sent by third-party applications to public cloud services must be authenticated using signatures.</p>
|
||||
<p id="apig-en-api-180328001__p36893300141518">This document describes the signature procedure, provides sample code to illustrate how to use the default signer to sign requests and how to use the HTTP client to send requests.</p>
|
||||
</div>
|
||||
|
193
docs/apiu/guidelines/apig-en-api-180328002.html
Normal file
80
docs/apiu/guidelines/apig-en-api-180328003.html
Normal file
@ -0,0 +1,80 @@
|
||||
<a name="apig-en-api-180328003"></a><a name="apig-en-api-180328003"></a>
|
||||
|
||||
<h1 class="topictitle1">Token Authentication</h1>
|
||||
<div id="body1537441075328"><div class="section" id="apig-en-api-180328003__section5608799912249"><h4 class="sectiontitle">Application Scenarios</h4><p id="apig-en-api-180328003__p4683410312249">If API requests are authenticated using tokens, the request header must contain <strong id="apig-en-api-180328003__b842352706161232">X-Auth-Token</strong> (token information).</p>
|
||||
<p id="apig-en-api-180328003__p1885374512249">This section describes how to call an API for token authentication.</p>
|
||||
</div>
|
||||
<div class="section" id="apig-en-api-180328003__section3546598312249"><h4 class="sectiontitle">Procedure</h4><ol id="apig-en-api-180328003__ol5417235112249"><li id="apig-en-api-180328003__li7201450105021">Send <strong id="apig-en-api-180328003__b034312224917">POST https://</strong><em id="apig-en-api-180328003__i20265928093">IAM endpoint</em><strong id="apig-en-api-180328003__b1356462520912">/v3/auth/tokens</strong> to obtain the IAM endpoint and the region name in the message body.<p id="apig-en-api-180328003__p29157503105024">See <a href="https://docs.otc.t-systems.com/regions-and-endpoints/index.html" target="_blank" rel="noopener noreferrer">Regions and Endpoints</a>.</p>
|
||||
<p id="apig-en-api-180328003__p126473211266"></p>
|
||||
<p id="apig-en-api-180328003__p066712334263">A cloud service can be deployed globally or at the project level.</p>
|
||||
<ul id="apig-en-api-180328003__ul11667123332614"><li id="apig-en-api-180328003__li17667173382616">A project-level service requires a project-level token. When you call the API, set <strong id="apig-en-api-180328003__b18431516468">auth.scope</strong> in the request body to <strong id="apig-en-api-180328003__b5845158464">project</strong>. The following services are at the project level: AOM, APIG, AS, BMS, CBR, CCE, Cloud Eye, CSBS, CSS, CTS, DataArts Studio, DC, DCS, DDS, Dedicated WAF, DeH, DIS, DLI, DMS, DNS, DRS, DWS, ECS, EIP, ELB, EVS, GaussDB (for MySQL), GaussDB NoSQL, IMS, KMS, LTS, ModelArts, MRS, NAT, PLAS, RDS, RTS, SDRS, SFS, SMN, SWR, VBS, VPC, VPCEP, VPN, and WAF.</li><li id="apig-en-api-180328003__li7667233182615">A global service requires a global token. When you call the API, set <strong id="apig-en-api-180328003__b16642105915485">auth.scope</strong> in the request body to <strong id="apig-en-api-180328003__b364265915485">domain</strong>. The following services are global ones: Anti-DDoS, IAM, OBS, TMS, and TMS.</li></ul>
|
||||
<div class="p" id="apig-en-api-180328003__p4434491412249">The following shows an example of a project-level service request:<div class="note" id="apig-en-api-180328003__note6355990812249"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="apig-en-api-180328003__p3516826412249">Replace the texts in italic with actual ones. For details, see <em id="apig-en-api-180328003__i842352697155127">Identity and Access Management API Reference</em>.</p>
|
||||
<p id="apig-en-api-180328003__p1770474713271">Log in to the management console, click your username in the upper right corner, and choose <strong id="apig-en-api-180328003__b1424175514817">My Credential</strong> from the drop-down list. On the <strong id="apig-en-api-180328003__b362886114912">My Credentials</strong> page, obtain your username, domain name, and project ID.</p>
|
||||
</div></div>
|
||||
<pre class="screen" id="apig-en-api-180328003__screen18966866105917">{
|
||||
"auth": {
|
||||
"identity": {
|
||||
"methods": [
|
||||
"password"
|
||||
],
|
||||
"password": {
|
||||
"user": {
|
||||
"name": "<em id="apig-en-api-180328003__i3005717212249"><strong id="apig-en-api-180328003__b34061845415">username</strong></em>", // IAM username
|
||||
"password": "<em id="apig-en-api-180328003__i207909212249"><strong id="apig-en-api-180328003__b626512207546">password</strong></em>", // IAM user password
|
||||
"domain": {
|
||||
"name": "<em id="apig-en-api-180328003__i1871183512249"><strong id="apig-en-api-180328003__b7805102111542">domainname</strong></em>" // Name of the domain to which the IAM user belongs
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"scope": {
|
||||
"<strong id="apig-en-api-180328003__b563015402144">project</strong>": {
|
||||
"id": "<strong id="apig-en-api-180328003__b4301132835416"><em id="apig-en-api-180328003__i1191627165415">0215ef11e49d4743be23dd97a1561e91</em></strong>" // Project ID
|
||||
}
|
||||
}
|
||||
}
|
||||
}</pre>
|
||||
</div>
|
||||
<p id="apig-en-api-180328003__p1847182114579">The following shows an example of a global service request:</p>
|
||||
<pre class="screen" id="apig-en-api-180328003__screen184324210584">{
|
||||
"auth": {
|
||||
"identity": {
|
||||
"methods": [
|
||||
"password"
|
||||
],
|
||||
"password": {
|
||||
"user": {
|
||||
"name": "<em id="apig-en-api-180328003__i1589423111011"><strong id="apig-en-api-180328003__b1589423112012">username</strong></em>", // IAM username
|
||||
"password": "<em id="apig-en-api-180328003__i7932938307"><strong id="apig-en-api-180328003__b149328381909">password</strong></em>", // IAM user password
|
||||
"domain": {
|
||||
"name": "<em id="apig-en-api-180328003__i34335451306"><strong id="apig-en-api-180328003__b343319451304">domainname</strong></em>" // Name of the domain to which the IAM user belongs
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"scope": {
|
||||
"<strong id="apig-en-api-180328003__b191917362143">domain</strong>": {
|
||||
"name": "<em id="apig-en-api-180328003__i13403382119"><strong id="apig-en-api-180328003__b74031884120">domainname</strong></em>" // Name of the domain to which the IAM user belongs
|
||||
}
|
||||
}
|
||||
}
|
||||
}</pre>
|
||||
</li><li id="apig-en-api-180328003__li2615608112249"><a name="apig-en-api-180328003__li2615608112249"></a><a name="li2615608112249"></a>Obtain the token. For details, see section "Obtaining the User Token" in the <em id="apig-en-api-180328003__i9409102014312">Identity and Access Management API Reference</em>. If the request is successful, the value of the X-Subject-Token header in the response is the token.<p id="apig-en-api-180328003__p183451053025">The following figures illustrate how to use Postman to manually obtain a token.</p>
|
||||
<div class="fignone" id="apig-en-api-180328003__fig423411369101"><span class="figcap"><b>Figure 1 </b>Example request</span><br><span><img id="apig-en-api-180328003__image1460602112316" src="en-us_image_0139098594.png" title="Click to enlarge" class="imgResize"></span></div>
|
||||
<div class="fignone" id="apig-en-api-180328003__fig1097673441212"><span class="figcap"><b>Figure 2 </b>Obtain <strong id="apig-en-api-180328003__b89061138185418">X-Subject-Token</strong> from the header of the response message.</span><br><span><img id="apig-en-api-180328003__image10464847153010" src="en-us_image_0139099203.png" title="Click to enlarge" class="imgResize"></span></div>
|
||||
</li><li id="apig-en-api-180328003__li3407814412249">Call a service API, add the <strong id="apig-en-api-180328003__b208194011610">X-Auth-Token</strong> header with the token obtained in <a href="#apig-en-api-180328003__li2615608112249">2</a>.</li></ol>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="familylinks">
|
||||
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-api-180925010.html">Calling APIs</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
image_size('.imgResize');
|
||||
var msg_imageMax = "view original image";
|
||||
var msg_imageClose = "close";
|
||||
//--></script>
|
36
docs/apiu/guidelines/apig-en-api-180328004.html
Normal file
@ -0,0 +1,36 @@
|
||||
<a name="apig-en-api-180328004"></a><a name="apig-en-api-180328004"></a>
|
||||
|
||||
<h1 class="topictitle1">AK/SK Authentication</h1>
|
||||
<div id="body1521445726195"><p id="apig-en-api-180328004__p4081232010247">When you use API Gateway to send requests to underlying services, the requests must be signed using the AK and SK.</p>
|
||||
<div class="note" id="apig-en-api-180328004__note39290400185533"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="apig-en-api-180328004__p43222010185539">AK is a unique identifier that is associated with a secret access key; the access key ID and secret access key are used together to sign requests cryptographically.</p>
|
||||
<p id="apig-en-api-180328004__p27812810185625">SK is a key that is used in conjunction with an access key ID to cryptographically sign requests. Signing a request identifies the sender and prevents the request from being altered.</p>
|
||||
</div></div>
|
||||
<p id="apig-en-api-180328004__p177381608119">The AK/SK authentication process is as follows:</p>
|
||||
<ol id="apig-en-api-180328004__ol3895253574"><li id="apig-en-api-180328004__li889518531076"><a name="apig-en-api-180328004__li889518531076"></a><a name="li889518531076"></a>A standard request is created.</li><li id="apig-en-api-180328004__li1541420241986">A to-be-signed string is created using the request and other related information.</li><li id="apig-en-api-180328004__li198402221915"><a name="apig-en-api-180328004__li198402221915"></a><a name="li198402221915"></a>A signature is calculated using the AK/SK and to-be-signed string.</li><li id="apig-en-api-180328004__li68021236101010">The generated signature is added as a header or a query parameter in the HTTP request.</li><li id="apig-en-api-180328004__li12754191891410">After receiving the request, API Gateway performs <a href="#apig-en-api-180328004__li889518531076">1</a> to <a href="#apig-en-api-180328004__li198402221915">3</a> to calculate a signature.</li><li id="apig-en-api-180328004__li1440182718209">The new signature is compared with the signature generated in <a href="#apig-en-api-180328004__li198402221915">3</a>. If they are consistent, the request is processed; otherwise, the request is rejected.</li></ol>
|
||||
<p id="apig-en-api-180328004__p193791486216"><a href="#apig-en-api-180328004__fig104904517537">Figure 1</a> shows the process of calling APIs through AK/SK authentication.</p>
|
||||
<div class="fignone" id="apig-en-api-180328004__fig104904517537"><a name="apig-en-api-180328004__fig104904517537"></a><a name="fig104904517537"></a><span class="figcap"><b>Figure 1 </b>API calling process flow</span><br><span><img class="imgResize" id="apig-en-api-180328004__image1749635618277" src="en-us_image_0161965716.png" title="Click to enlarge"></span></div>
|
||||
<div class="note" id="apig-en-api-180328004__note14106145674716"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="apig-en-api-180328004__ul4407983487"><li id="apig-en-api-180328004__li11407988488">If a failure occurs in any step, the failure will be returned to the client application.</li><li id="apig-en-api-180328004__li1091411114818">The cached token is valid for 15 minutes by default.</li></ul>
|
||||
</div></div>
|
||||
</div>
|
||||
<div>
|
||||
<ul class="ullinks">
|
||||
<li class="ulchildlink"><strong><a href="apig-en-api-180328005.html">Generating an AK and SK</a></strong><br>
|
||||
</li>
|
||||
<li class="ulchildlink"><strong><a href="apig-en-api-180328006.html">Signing a Request</a></strong><br>
|
||||
</li>
|
||||
<li class="ulchildlink"><strong><a href="apig-en-api-180328008.html">Sample Code</a></strong><br>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="familylinks">
|
||||
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-api-180925010.html">Calling APIs</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
image_size('.imgResize');
|
||||
var msg_imageMax = "view original image";
|
||||
var msg_imageClose = "close";
|
||||
//--></script>
|
15
docs/apiu/guidelines/apig-en-api-180328005.html
Normal file
@ -0,0 +1,15 @@
|
||||
<a name="apig-en-api-180328005"></a><a name="apig-en-api-180328005"></a>
|
||||
|
||||
<h1 class="topictitle1">Generating an AK and SK</h1>
|
||||
<div id="body1537444154231"><ol id="apig-en-api-180328005__ol6063434420657"><li id="apig-en-api-180328005__li53268082161429">Log in to the management console.</li><li id="apig-en-api-180328005__li58707242194127">Click the username and choose <strong id="apig-en-api-180328005__b15347312181919">My Credential</strong> from the drop-down list.</li></ol><ol start="3" id="apig-en-api-180328005__ol1866691320747"><li id="apig-en-api-180328005__li64261916202213">Click <strong id="apig-en-api-180328005__b25322139195">Access Keys</strong>.</li><li id="apig-en-api-180328005__li1327987320742">Click <strong id="apig-en-api-180328005__b77941514131917">Add Access Keys</strong> to switch to the <strong id="apig-en-api-180328005__b12795614141914">Add Access Keys</strong> page.</li><li id="apig-en-api-180328005__li12076053102753">Enter your login password.</li><li id="apig-en-api-180328005__li18362662204736">Enter the verification code sent to your mailbox or mobile phone.<div class="note" id="apig-en-api-180328005__note35171693204736"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="apig-en-api-180328005__ul26525690204736"><li id="apig-en-api-180328005__li30992410204736">Users that are created in IAM without specifying email addresses or mobile numbers only need to enter their login passwords.</li><li id="apig-en-api-180328005__li28362923204736">MyWorkplace users are not required to enter their login passwords. They can create new access keys without entering verification codes if no email addresses or mobile numbers have been specified.</li></ul>
|
||||
</div></div>
|
||||
</li></ol><ol start="7" id="apig-en-api-180328005__ol6544796411157"><li id="apig-en-api-180328005__li38629386204736">Click <strong id="apig-en-api-180328005__b13623101072111">OK</strong> to download the access key.<div class="note" id="apig-en-api-180328005__note3606752619504"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p class="text" id="apig-en-api-180328005__p59314629204732">Keep the AK/SK file confidential to prevent information leakage.</p>
|
||||
</div></div>
|
||||
</li></ol>
|
||||
</div>
|
||||
<div>
|
||||
<div class="familylinks">
|
||||
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-api-180328004.html">AK/SK Authentication</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
25
docs/apiu/guidelines/apig-en-api-180328006.html
Normal file
@ -0,0 +1,25 @@
|
||||
<a name="apig-en-api-180328006"></a><a name="apig-en-api-180328006"></a>
|
||||
|
||||
<h1 class="topictitle1">Signing a Request</h1>
|
||||
<div id="body1537444154804"><ol id="apig-en-api-180328006__ol930865701011"><li id="apig-en-api-180328006__li17137133433914"><a name="apig-en-api-180328006__li17137133433914"></a><a name="li17137133433914"></a>Introduce the API Gateway signing SDK in the project.<ol type="a" id="apig-en-api-180328006__ol54494262406"><li id="apig-en-api-180328006__li9451162612408">Download the API Gateway signing tool from the following link:<p id="apig-en-api-180328006__p122916401107"><a name="apig-en-api-180328006__li9451162612408"></a><a name="li9451162612408"></a><a href="https://apig-demo.obs.eu-de.otc.t-systems.com/java/java-sdk-core.zip" target="_blank" rel="noopener noreferrer">https://apig-demo.obs.eu-de.otc.t-systems.com/java/java-sdk-core.zip</a></p>
|
||||
</li><li id="apig-en-api-180328006__li54621026114019">Decompress the downloaded package to obtain a <strong id="apig-en-api-180328006__b12397105192410">.jar</strong> file.</li><li id="apig-en-api-180328006__li1046402634017">Add the decompressed <strong id="apig-en-api-180328006__b765309142415">.jar</strong> file to a project, for example, Eclipse, as a dependency package. See the following figure.<p id="apig-en-api-180328006__p9619172034018"><span><img id="apig-en-api-180328006__image534782164016" src="en-us_image_0132557229.png" title="Click to enlarge" class="imgResize"></span></p>
|
||||
</li></ol>
|
||||
</li><li id="apig-en-api-180328006__li18855549161113">Sign the request.<p id="apig-en-api-180328006__p147949344572"><a name="apig-en-api-180328006__li18855549161113"></a><a name="li18855549161113"></a>The signing method is integrated into the <strong id="apig-en-api-180328006__b11687487240">.jar</strong> file added in <a href="#apig-en-api-180328006__li17137133433914">1</a>. Before sending the request, sign the requested content. The signature obtained is included in the HTTP header of the request.</p>
|
||||
<p id="apig-en-api-180328006__p9205028144610">For details, see <a href="apig-en-api-180328008.html">Sample Code</a>.</p>
|
||||
<div class="notice" id="apig-en-api-180328006__note47372794014"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><p id="apig-en-api-180328006__p1773727144016">The JDK version cannot be earlier than 1.8.</p>
|
||||
</div></div>
|
||||
</li></ol>
|
||||
</div>
|
||||
<div>
|
||||
<div class="familylinks">
|
||||
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-api-180328004.html">AK/SK Authentication</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
image_size('.imgResize');
|
||||
var msg_imageMax = "view original image";
|
||||
var msg_imageClose = "close";
|
||||
//--></script>
|
79
docs/apiu/guidelines/apig-en-api-180328008.html
Normal file
@ -0,0 +1,79 @@
|
||||
<a name="apig-en-api-180328008"></a><a name="apig-en-api-180328008"></a>
|
||||
|
||||
<h1 class="topictitle1">Sample Code</h1>
|
||||
<div id="body1537444154811"><div class="section" id="apig-en-api-180328008__section1596319488437"><h4 class="sectiontitle">Scenario</h4><p id="apig-en-api-180328008__p1220414484384">This section describes how to call the API of a public cloud service by using Eclipse.</p>
|
||||
<div class="p" id="apig-en-api-180328008__p363635184312">The following code shows how to sign a request and how to use an HTTP client to send an HTTPS request. The code is categorized into three classes:<ul id="apig-en-api-180328008__ul109498014112"><li id="apig-en-api-180328008__li119491103110"><strong id="apig-en-api-180328008__b38114539368">AccessService</strong>: an abstract class that merges the GET, POST, PUT, and DELETE methods into the access method.</li><li id="apig-en-api-180328008__li16949701211"><strong id="apig-en-api-180328008__b16692111103719">Demo</strong>: execution entry that simulates GET, POST, PUT, and DELETE requests.</li><li id="apig-en-api-180328008__li99492015115"><strong id="apig-en-api-180328008__b79386273717">AccessServiceImpl</strong>: implementation of the access method. The code required for API Gateway communication is included in the access method.</li></ul>
|
||||
</div>
|
||||
<p id="apig-en-api-180328008__p265415818244">You can download the sample code package from <a href="https://apig-demo.obs.eu-de.otc.t-systems.com/java/SdkDemo.zip" target="_blank" rel="noopener noreferrer">https://apig-demo.obs.eu-de.otc.t-systems.com/java/SdkDemo.zip</a>.</p>
|
||||
<div class="notice" id="apig-en-api-180328008__note47372794014"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><p id="apig-en-api-180328008__p1773727144016">The JDK version cannot be earlier than 1.8.</p>
|
||||
</div></div>
|
||||
</div>
|
||||
<div class="section" id="apig-en-api-180328008__section98551696457"><h4 class="sectiontitle">Procedure</h4><ol id="apig-en-api-180328008__ol1515318170459"><li id="apig-en-api-180328008__li1115311720450">Download the sample code package and decompress it.</li><li id="apig-en-api-180328008__li1210954191115">Import the sample project to Eclipse.<div class="fignone" id="apig-en-api-180328008__fig16546145205014"><span class="figcap"><b>Figure 1 </b>Selecting an existing project</span><br><span><img id="apig-en-api-180328008__image1474131114720" src="en-us_image_0132432937.png" title="Click to enlarge" class="imgResize"></span></div>
|
||||
<div class="fignone" id="apig-en-api-180328008__fig767232218519"><span class="figcap"><b>Figure 2 </b>Selecting the sample code file after decompression</span><br><span><img id="apig-en-api-180328008__image13419842205018" src="en-us_image_0132432939.png" title="Click to enlarge" class="imgResize"></span></div>
|
||||
<div class="fignone" id="apig-en-api-180328008__fig159778103242"><span class="figcap"><b>Figure 3 </b>Structure of the project after importing</span><br><span><img id="apig-en-api-180328008__image128044312389" src="en-us_image_0132518357.png"></span></div>
|
||||
</li><li id="apig-en-api-180328008__li1985133317503">Edit the main method in the <strong id="apig-en-api-180328008__b12111822184012">Demo.java</strong> file.<p id="apig-en-api-180328008__p2061535616161">Replace the bold texts with actual values. If you use other methods, such as POST, PUT, and DELETE, see the corresponding annotations.</p>
|
||||
<p id="apig-en-api-180328008__p129401344175213">Replace the parameters in the URL, for example, <strong id="apig-en-api-180328008__b61192044135710">project_id</strong>.</p>
|
||||
<p id="apig-en-api-180328008__p76929333513">For details on how to obtain your region name, service name, AK/SK, project ID, and domain ID, see <a href="apig-en-api-180328009.html">Obtaining Required Information</a>.</p>
|
||||
<pre class="screen" id="apig-en-api-180328008__screen1282532262819">//<strong id="apig-en-api-180328008__b682822216285">TODO</strong>: Replace <strong id="apig-en-api-180328008__b1494717204464">eu-de</strong> with the name of the region in which the service to be accessed is located.
|
||||
<strong id="apig-en-api-180328008__b3836162292818">private</strong> <strong id="apig-en-api-180328008__b14838142214284">static</strong> <strong id="apig-en-api-180328008__b9840162252820">final</strong> String <strong id="apig-en-api-180328008__b168426222280"><em id="apig-en-api-180328008__i78434223289">region</em></strong> = "<strong id="apig-en-api-180328008__b984611224288">eu-de</strong>";
|
||||
|
||||
//<strong id="apig-en-api-180328008__b485092242814">TODO</strong>: Replace <strong id="apig-en-api-180328008__b1289103244620">vpc</strong> with the name of the service you want to access. For example, ecs, vpc, iam, and elb.
|
||||
<strong id="apig-en-api-180328008__b1085511229289">private</strong> <strong id="apig-en-api-180328008__b148569223286">static</strong> <strong id="apig-en-api-180328008__b2858922162819">final</strong> String <strong id="apig-en-api-180328008__b1886002219283"><em id="apig-en-api-180328008__i08607227287">serviceName</em></strong> = "<strong id="apig-en-api-180328008__b10864422132819">vpc</strong>";
|
||||
|
||||
<strong id="apig-en-api-180328008__b586872292810">public</strong> <strong id="apig-en-api-180328008__b387022202811">static</strong> <strong id="apig-en-api-180328008__b9872422122810">void</strong> main(String[] args) <strong id="apig-en-api-180328008__b1687452216287">throws</strong> UnsupportedEncodingException
|
||||
{
|
||||
//<strong id="apig-en-api-180328008__b14878522192811">TODO</strong>: Replace the AK and SK with those obtained on the <strong id="apig-en-api-180328008__b96051419463">My Credential</strong> page.
|
||||
String ak = "<strong id="apig-en-api-180328008__b1788482282817">ZIRRKMTWPTQFQI1WKNKB</strong>";
|
||||
String sk = "<strong id="apig-en-api-180328008__b15888122142815">Us0mdMNHk******YrRCnW0ecfzl</strong>";
|
||||
|
||||
//<strong id="apig-en-api-180328008__b138911622102819">TODO</strong>: To specify a project ID (multi-project scenarios), add the X-Project-Id header.
|
||||
//<strong id="apig-en-api-180328008__b188965224282">TODO</strong>: To access a global service, such as IAM, DNS, CDN, and TMS, add the X-Domain-Id header to specify an account ID.
|
||||
//<strong id="apig-en-api-180328008__b690112219287">TODO</strong>: To add a header, find "Add special headers" in the <strong id="apig-en-api-180328008__b1545410554465">AccessServiceImple.java</strong> file.
|
||||
|
||||
//<strong id="apig-en-api-180328008__b18907182213284">TODO</strong>: Test the API
|
||||
String url = "<strong id="apig-en-api-180328008__b20913522132813">https://vpc.eu-de.otc.t-systems.com/v1/{project_id}/vpcs/{vpc_id}</strong>";
|
||||
<em id="apig-en-api-180328008__i1291714227289">get</em>(ak, sk, url);
|
||||
|
||||
//<strong id="apig-en-api-180328008__b7926142272813">TODO</strong>: When creating a VPC, replace <em id="apig-en-api-180328008__i6496148124718">{project_id}</em> in postUrl with the actual value.
|
||||
//String postUrl = "https://vpc.eu-de.otc.t-systems.com/v1/{project_id}/cloudservers";
|
||||
//String postbody ="{\"<u id="apig-en-api-180328008__u393210221281">vpc</u>\": {\"name\": \"vpc\",\"cidr\": \"192.168.0.0/16\"}}";
|
||||
//post(ak, sk, postUrl, postbody);
|
||||
|
||||
//<strong id="apig-en-api-180328008__b39371722132816">TODO</strong>: When querying a VPC, replace <em id="apig-en-api-180328008__i29291714154718">{project_id}</em> in url with the actual value.
|
||||
//String url = "https://vpc.eu-de.otc.t-systems.com/v1/{project_id}/vpcs/{vpc_id}";
|
||||
//get(ak, sk, url);
|
||||
|
||||
//<strong id="apig-en-api-180328008__b795092292816">TODO</strong>: When updating a VPC, replace <em id="apig-en-api-180328008__i96031294474">{project_id}</em> and <em id="apig-en-api-180328008__i3423933194716">{vpc_id}</em> in putUrl with the actual values.
|
||||
//String putUrl = "https://vpc.eu-de.otc.t-systems.com/v1/{project_id}/vpcs/{vpc_id}";
|
||||
//String putbody ="{\"vpc\":{\"name\": \"vpc1\",\"cidr\": \"192.168.0.0/16\"}}";
|
||||
//put(ak, sk, putUrl, putbody);
|
||||
|
||||
//<strong id="apig-en-api-180328008__b1996262292817">TODO</strong>: When deleting a VPC, replace <em id="apig-en-api-180328008__i1564824510475">{project_id}</em> and <em id="apig-en-api-180328008__i3443250124716">{vpc_id}</em> in deleteUrl with the actual values.
|
||||
//String deleteUrl = "https://vpc.eu-de.otc.t-systems.com/v1/{project_id}/vpcs/{vpc_id}";
|
||||
//delete(ak, sk, deleteUrl);
|
||||
}</pre>
|
||||
</li><li id="apig-en-api-180328008__li692519271935">(Optional) To call a service API of a sub-project or to add a self-defined header, perform the following steps:<ol type="a" id="apig-en-api-180328008__ol12427135611263"><li id="apig-en-api-180328008__li54271856142617">In the main method in the <strong id="apig-en-api-180328008__b112361621145020">Demo.java</strong> file, replace <strong id="apig-en-api-180328008__b5766162611504">project_id</strong> with the sub-project ID of the API.<pre class="screen" id="apig-en-api-180328008__screen11631945182617">//<strong id="apig-en-api-180328008__b763444562619">TODO</strong>: Test the API
|
||||
String url = "https://vpc.eu-de.otc.t-systems.com/v1/{<strong id="apig-en-api-180328008__b363934516261">project_id</strong>}/vpcs/{vpc_id}";
|
||||
<em id="apig-en-api-180328008__i1164219452266">get</em>(ak, sk, url);</pre>
|
||||
</li><li id="apig-en-api-180328008__li11427145613263"><a name="apig-en-api-180328008__li11427145613263"></a><a name="li11427145613263"></a>Locate the following lines in the <strong id="apig-en-api-180328008__b117131855110">AccessServiceImpl.java</strong> file, delete "//" to activate the code line, and replace the sub-project ID with the actual one.<pre class="screen" id="apig-en-api-180328008__screen17729190153516">//<strong id="apig-en-api-180328008__b167326033518">TODO</strong>: Add special headers.
|
||||
//request.addHeader("X-Project-Id", "<strong id="apig-en-api-180328008__b77328083512">xxxxx</strong>");</pre>
|
||||
</li><li id="apig-en-api-180328008__li47751621276">Repeat <a href="#apig-en-api-180328008__li11427145613263">4.b</a> to add other self-defined headers.</li></ol>
|
||||
</li><li id="apig-en-api-180328008__li18412306320">Compile and run the API calling code.<p id="apig-en-api-180328008__p188281527115415"><a name="apig-en-api-180328008__li18412306320"></a><a name="li18412306320"></a>Find <strong id="apig-en-api-180328008__b350175610616">Demo.java</strong> in the left pane of the Package Explorer, right-click, and choose <strong id="apig-en-api-180328008__b1685091315113">Run AS</strong> > <strong id="apig-en-api-180328008__b340219171313">Java Application</strong>.</p>
|
||||
<p id="apig-en-api-180328008__p20946560369">View the API call logs on the console.</p>
|
||||
</li></ol>
|
||||
</div>
|
||||
<p id="apig-en-api-180328008__p56708187102740"></p>
|
||||
</div>
|
||||
<div>
|
||||
<div class="familylinks">
|
||||
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-api-180328004.html">AK/SK Authentication</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
image_size('.imgResize');
|
||||
var msg_imageMax = "view original image";
|
||||
var msg_imageClose = "close";
|
||||
//--></script>
|
114
docs/apiu/guidelines/apig-en-api-180328009.html
Normal file
107
docs/apiu/guidelines/apig-en-api-180328012.html
Normal file
16
docs/apiu/guidelines/apig-en-api-180925010.html
Normal file
@ -0,0 +1,16 @@
|
||||
<a name="apig-en-api-180925010"></a><a name="apig-en-api-180925010"></a>
|
||||
|
||||
<h1 class="topictitle1">Calling APIs</h1>
|
||||
<div id="body1537441012740"><p id="apig-en-api-180925010__p8060118"></p>
|
||||
</div>
|
||||
<div>
|
||||
<ul class="ullinks">
|
||||
<li class="ulchildlink"><strong><a href="apig-en-api-180328009.html">Obtaining Required Information</a></strong><br>
|
||||
</li>
|
||||
<li class="ulchildlink"><strong><a href="apig-en-api-180328003.html">Token Authentication</a></strong><br>
|
||||
</li>
|
||||
<li class="ulchildlink"><strong><a href="apig-en-api-180328004.html">AK/SK Authentication</a></strong><br>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
BIN
docs/apiu/guidelines/en-us_image_0132432937.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
docs/apiu/guidelines/en-us_image_0132432939.png
Normal file
After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 110 KiB |
BIN
docs/apiu/guidelines/en-us_image_0132453772.png
Normal file
After Width: | Height: | Size: 175 KiB |
BIN
docs/apiu/guidelines/en-us_image_0132518357.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
docs/apiu/guidelines/en-us_image_0132557229.png
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
docs/apiu/guidelines/en-us_image_0139098594.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
docs/apiu/guidelines/en-us_image_0139099203.png
Normal file
After Width: | Height: | Size: 51 KiB |
BIN
docs/apiu/guidelines/en-us_image_0161965716.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
docs/apiu/guidelines/public_sys-resources/caution_3.0-en-us.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
docs/apiu/guidelines/public_sys-resources/danger_3.0-en-us.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
docs/apiu/guidelines/public_sys-resources/delta.gif
Normal file
After Width: | Height: | Size: 836 B |
BIN
docs/apiu/guidelines/public_sys-resources/deltaend.gif
Normal file
After Width: | Height: | Size: 834 B |
BIN
docs/apiu/guidelines/public_sys-resources/icon-arrowdn.gif
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
docs/apiu/guidelines/public_sys-resources/icon-arrowrt.gif
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
docs/apiu/guidelines/public_sys-resources/icon-caution.gif
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
docs/apiu/guidelines/public_sys-resources/icon-danger.gif
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
docs/apiu/guidelines/public_sys-resources/icon-huawei.gif
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
docs/apiu/guidelines/public_sys-resources/icon-note.gif
Normal file
After Width: | Height: | Size: 983 B |
BIN
docs/apiu/guidelines/public_sys-resources/icon-notice.gif
Normal file
After Width: | Height: | Size: 962 B |
BIN
docs/apiu/guidelines/public_sys-resources/icon-tip.gif
Normal file
After Width: | Height: | Size: 879 B |
BIN
docs/apiu/guidelines/public_sys-resources/icon-warning.gif
Normal file
After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1014 B After Width: | Height: | Size: 1014 B |
BIN
docs/apiu/guidelines/public_sys-resources/note_3.0-en-us.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
docs/apiu/guidelines/public_sys-resources/notice_3.0-en-us.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
docs/apiu/guidelines/public_sys-resources/warning_3.0-en-us.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
2724
docs/apm/umn/ALL_META.TXT.json
Normal file
1325
docs/apm/umn/CLASS.TXT.json
Normal file
3
docs/apm/umn/PARAMETERS.txt
Normal file
@ -0,0 +1,3 @@
|
||||
version=""
|
||||
language="en-us"
|
||||
type=""
|
29
docs/apm/umn/apm_01_0001.html
Normal file
@ -0,0 +1,29 @@
|
||||
<a name="apm_01_0001"></a><a name="apm_01_0001"></a>
|
||||
|
||||
<h1 class="topictitle1">Service Overview</h1>
|
||||
<div id="body39451090"></div>
|
||||
<div>
|
||||
<ul class="ullinks">
|
||||
<li class="ulchildlink"><strong><a href="apm_01_0002.html">What Is APM</a></strong><br>
|
||||
</li>
|
||||
<li class="ulchildlink"><strong><a href="apm_01_0003.html">Functions</a></strong><br>
|
||||
</li>
|
||||
<li class="ulchildlink"><strong><a href="apm_01_0004.html">Application Scenarios</a></strong><br>
|
||||
</li>
|
||||
<li class="ulchildlink"><strong><a href="apm_01_0005.html">Basic Concepts</a></strong><br>
|
||||
</li>
|
||||
<li class="ulchildlink"><strong><a href="apm_01_0006.html">Edition Differences</a></strong><br>
|
||||
</li>
|
||||
<li class="ulchildlink"><strong><a href="apm_01_0007.html">Permissions Management</a></strong><br>
|
||||
</li>
|
||||
<li class="ulchildlink"><strong><a href="apm_01_0013.html">Metric Overview</a></strong><br>
|
||||
</li>
|
||||
<li class="ulchildlink"><strong><a href="apm_01_0008.html">Privacy and Sensitive Information Protection Statement</a></strong><br>
|
||||
</li>
|
||||
<li class="ulchildlink"><strong><a href="apm_01_0009.html">Data Collection</a></strong><br>
|
||||
</li>
|
||||
<li class="ulchildlink"><strong><a href="apm_01_0010.html">Usage Restrictions</a></strong><br>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
70
docs/apm/umn/apm_01_0002.html
Normal file
@ -0,0 +1,70 @@
|
||||
<a name="apm_01_0002"></a><a name="apm_01_0002"></a>
|
||||
|
||||
<h1 class="topictitle1">What Is APM</h1>
|
||||
<div id="body8662426"><div class="section" id="apm_01_0002__en-us_topic_0000001195565132_section89968509512"><h4 class="sectiontitle">O&M Challenges</h4><p id="apm_01_0002__en-us_topic_0000001195565132_p117588488414">In the cloud era, applications in the microservice architecture are increasingly diversified, bringing many application exceptions. Application O&M faces the following challenges:</p>
|
||||
<ul id="apm_01_0002__en-us_topic_0000001195565132_ul637951781412"><li id="apm_01_0002__en-us_topic_0000001195565132_li19522015191816">Distributed applications have complex relationships. As a result, it is hard to ensure normal application running, and quickly locate faults and performance bottlenecks.</li><li id="apm_01_0002__en-us_topic_0000001195565132_li585013711538">Users choose to leave due to poor experience. If O&M personnel cannot detect and trace services with poor experience in real time, or diagnose application exceptions in a timely manner, user experience will be greatly affected.</li><li id="apm_01_0002__en-us_topic_0000001195565132_li761712732216">There are a large number of widely distributed applications in the service system. Calls across systems, regions, and applications are frequent. Enterprises urgently need to reduce application management and O&M costs and improve O&M efficiency.</li></ul>
|
||||
</div>
|
||||
<div class="section" id="apm_01_0002__en-us_topic_0000001195565132_section1421813348523"><h4 class="sectiontitle">Introduction to APM</h4><p id="apm_01_0002__en-us_topic_0000001195565132_p19619245135220">Application Performance Management (APM) helps O&M personnel quickly identify application performance bottlenecks and locate root causes of faults, ensuring user experience.</p>
|
||||
<p id="apm_01_0002__en-us_topic_0000001195565132_p06185421439">You only need to install Agents for applications so that APM can monitor them in an all-round manner. APM can quickly locate error APIs and slow APIs, reproduce calling parameters, and detect system bottlenecks, facilitating online diagnosis. Currently, APM supports Java applications. The following table lists the application monitoring capabilities of APM.</p>
|
||||
<div class="note" id="apm_01_0002__en-us_topic_0000001195565132_note63914352294"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="apm_01_0002__en-us_topic_0000001195565132_p1622762118134">APM is short for Application Performance Management. <strong id="apm_01_0002__en-us_topic_0000001195565132_b1828125417304">apm2</strong> is the registered endpoint address.</p>
|
||||
</div></div>
|
||||
|
||||
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="apm_01_0002__en-us_topic_0000001195565132_table17517155912448" frame="border" border="1" rules="all"><caption><b>Table 1 </b>APM monitoring capabilities</caption><thead align="left"><tr id="apm_01_0002__en-us_topic_0000001195565132_row6979359164416"><th align="left" class="cellrowborder" valign="top" width="24.83%" id="mcps1.3.2.5.2.3.1.1"><p id="apm_01_0002__en-us_topic_0000001195565132_p158141511483">Capability</p>
|
||||
</th>
|
||||
<th align="left" class="cellrowborder" valign="top" width="75.17%" id="mcps1.3.2.5.2.3.1.2"><p id="apm_01_0002__en-us_topic_0000001195565132_p1890511910115">Description</p>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr id="apm_01_0002__en-us_topic_0000001195565132_row11231288911"><td class="cellrowborder" valign="top" width="24.83%" headers="mcps1.3.2.5.2.3.1.1 "><p id="apm_01_0002__en-us_topic_0000001195565132_p1897918771517">Non-intrusive collection of application performance data</p>
|
||||
</td>
|
||||
<td class="cellrowborder" valign="top" width="75.17%" headers="mcps1.3.2.5.2.3.1.2 "><p id="apm_01_0002__en-us_topic_0000001195565132_p2980777150">You do not need to modify application code. Instead, you only need to deploy an APM Agent package and modify application startup parameters to monitor applications.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="apm_01_0002__en-us_topic_0000001195565132_row13979559104412"><td class="cellrowborder" valign="top" width="24.83%" headers="mcps1.3.2.5.2.3.1.1 "><p id="apm_01_0002__en-us_topic_0000001195565132_p81731205536">Application metric monitoring</p>
|
||||
</td>
|
||||
<td class="cellrowborder" valign="top" width="75.17%" headers="mcps1.3.2.5.2.3.1.2 "><p id="apm_01_0002__en-us_topic_0000001195565132_p1517330105313">APM automatically monitors application metrics, such as JVM, JavaMethod, URL, Exception, Tomcat, HttpClient, MySQL, Redis, and Kafka.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="apm_01_0002__en-us_topic_0000001195565132_row3985115914449"><td class="cellrowborder" valign="top" width="24.83%" headers="mcps1.3.2.5.2.3.1.1 "><p id="apm_01_0002__en-us_topic_0000001195565132_p139051519151120">Application topology</p>
|
||||
</td>
|
||||
<td class="cellrowborder" valign="top" width="75.17%" headers="mcps1.3.2.5.2.3.1.2 "><p id="apm_01_0002__en-us_topic_0000001195565132_p1190521971119">APM automatically generates call relationships between distributed applications based on dynamic analysis and intelligent computing of remote procedure call (RPC) information.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="apm_01_0002__en-us_topic_0000001195565132_row3991115954410"><td class="cellrowborder" valign="top" width="24.83%" headers="mcps1.3.2.5.2.3.1.1 "><p id="apm_01_0002__en-us_topic_0000001195565132_p184169364143">Tracing</p>
|
||||
</td>
|
||||
<td class="cellrowborder" valign="top" width="75.17%" headers="mcps1.3.2.5.2.3.1.2 "><p id="apm_01_0002__en-us_topic_0000001195565132_p1541663621416">After multiple applications are connected to APM, APM automatically samples requests, and collects the call relationships between services and the health status of intermediate calls for automatic tracing.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="apm_01_0002__en-us_topic_0000001195565132_row99911599446"><td class="cellrowborder" valign="top" width="24.83%" headers="mcps1.3.2.5.2.3.1.1 "><p id="apm_01_0002__en-us_topic_0000001195565132_p12905101917116">Metric drill-down analysis</p>
|
||||
</td>
|
||||
<td class="cellrowborder" valign="top" width="75.17%" headers="mcps1.3.2.5.2.3.1.2 "><p id="apm_01_0002__en-us_topic_0000001195565132_p1090516192117">APM enables you to drill down and analyze metrics such as application response time, number of requests, and error rate, and view metrics by application, component, environment, database, middleware, or other dimensions.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="apm_01_0002__en-us_topic_0000001195565132_row199563155114"><td class="cellrowborder" valign="top" width="24.83%" headers="mcps1.3.2.5.2.3.1.1 "><p id="apm_01_0002__en-us_topic_0000001195565132_p164711437182619">Error or slow URL tracing</p>
|
||||
</td>
|
||||
<td class="cellrowborder" valign="top" width="75.17%" headers="mcps1.3.2.5.2.3.1.2 "><p id="apm_01_0002__en-us_topic_0000001195565132_p447116378268">APM identifies error or slow URLs based on URL tracing, and automatically associates them with corresponding APIs, such as SQL and MQ APIs.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<ol id="apm_01_0002__en-us_topic_0000001195565132_ol20487111016266"><li id="apm_01_0002__en-us_topic_0000001195565132_li11487171062616">Access to APM: Applications need to implement AK/SK authentication to connect to APM.</li><li id="apm_01_0002__en-us_topic_0000001195565132_li348714108269">O&M data collection: APM can collect data about applications, basic resources, and user experience from Agents in non-intrusive mode.</li><li id="apm_01_0002__en-us_topic_0000001195565132_li13335281588">Service implementation: APM supports application metric monitoring, application topology, tracing, and intelligent alarm reporting.</li><li id="apm_01_0002__en-us_topic_0000001195565132_li11487181012612">Service expansion:<ul id="apm_01_0002__en-us_topic_0000001195565132_ul539681181414"><li id="apm_01_0002__en-us_topic_0000001195565132_li839619110147">You can quickly diagnose application performance exceptions based on the application topology and tracing of APM, and make judgments based on the application O&M metrics of Application Operations Management (AOM).</li><li id="apm_01_0002__en-us_topic_0000001195565132_li919713571510">Based on the historical metric data learned by using intelligent algorithms, APM associates metrics for analysis from multiple dimensions, extracts the context data of both normal and abnormal services for comparison, and locates root causes through cluster analysis.</li></ul>
|
||||
</li></ol>
|
||||
</div>
|
||||
<div class="section" id="apm_01_0002__en-us_topic_0000001195565132_section890022319284"><h4 class="sectiontitle">Advantages</h4><p id="apm_01_0002__en-us_topic_0000001195565132_p690022316288"><span><img id="apm_01_0002__en-us_topic_0000001195565132_image7234016175415" src="en-us_image_0000001278522953.png"></span></p>
|
||||
<p id="apm_01_0002__en-us_topic_0000001195565132_p69002023112819">Connects to applications without having to modify code, and collects data in a non-intrusive mode.</p>
|
||||
<ul id="apm_01_0002__en-us_topic_0000001195565132_ul1238928174017"><li id="apm_01_0002__en-us_topic_0000001195565132_li1078792411227">APM Agents collect service call, service inventory, and call KPI data.</li></ul>
|
||||
<p id="apm_01_0002__en-us_topic_0000001195565132_p1190082322816"><span><img id="apm_01_0002__en-us_topic_0000001195565132_image3344204185518" src="en-us_image_0000001278405305.png"></span></p>
|
||||
<p id="apm_01_0002__en-us_topic_0000001195565132_p29001323182814">Delivers high throughput (hundreds of millions of API calls), ensuring premium experience.</p>
|
||||
<p id="apm_01_0002__en-us_topic_0000001195565132_p1190002317281"><span><img id="apm_01_0002__en-us_topic_0000001195565132_image17372854145513" src="en-us_image_0000001234565280.png"></span></p>
|
||||
<p id="apm_01_0002__en-us_topic_0000001195565132_p49006237281">Provides open APIs to query O&M data, offers collection standards, and supports independent development.</p>
|
||||
<p id="apm_01_0002__en-us_topic_0000001195565132_p582243217711"><span><img id="apm_01_0002__en-us_topic_0000001195565132_image477910515563" src="en-us_image_0000001278805009.png"></span></p>
|
||||
<p id="apm_01_0002__en-us_topic_0000001195565132_p16379202174111">Reports alarms using Artificial Intelligence (AI) threshold detection and machine learning based on historical baseline data, and supports root cause analysis.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="familylinks">
|
||||
<div class="parentlink"><strong>Parent topic:</strong> <a href="apm_01_0001.html">Service Overview</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
36
docs/apm/umn/apm_01_0003.html
Normal file
@ -0,0 +1,36 @@
|
||||
<a name="apm_01_0003"></a><a name="apm_01_0003"></a>
|
||||
|
||||
<h1 class="topictitle1">Functions</h1>
|
||||
<div id="body8662426"><p id="apm_01_0003__en-us_topic_0000001195725120_a29547e649dec42d0aa22f42b2a46e98f">APM manages cloud application performance. It provides application metric monitoring, tracing, application topology, URL tracing, intelligent alarm reporting, and tag/Agent/configuration/system management.</p>
|
||||
<div class="section" id="apm_01_0003__en-us_topic_0000001195725120_section87847237262"><h4 class="sectiontitle">Application Metric Monitoring</h4><p id="apm_01_0003__en-us_topic_0000001195725120_p18561034192613">This function enables you to monitor the overall health status of applications. APM Agents collect metrics of JVM, GC, service calls, exceptions, external calls, database access, and middleware of Java applications, helping you monitor application running.</p>
|
||||
</div>
|
||||
<div class="section" id="apm_01_0003__en-us_topic_0000001195725120_s8fe70ad540db459e961007661d2e6f9b"><h4 class="sectiontitle">Tracing</h4><p id="apm_01_0003__en-us_topic_0000001195725120_p735211153458">APM comprehensively monitors calls and displays service execution traces and statuses, helping you quickly locate performance bottlenecks and faults.</p>
|
||||
<ul id="apm_01_0003__en-us_topic_0000001195725120_ul8448181744511"><li id="apm_01_0003__en-us_topic_0000001195725120_li3826119144514">In the displayed trace list, click the target trace to view its basic information.</li><li id="apm_01_0003__en-us_topic_0000001195725120_li16448141704516">On the trace details page, you can view the trace's complete information, including the local method stack and remote call relationships.</li></ul>
|
||||
</div>
|
||||
<div class="section" id="apm_01_0003__en-us_topic_0000001195725120_s8afb4805418f43babf479007542d1263"><h4 class="sectiontitle">Application Topology</h4><p id="apm_01_0003__en-us_topic_0000001195725120_p169421337185614">There are two types of application topologies:</p>
|
||||
<ul id="apm_01_0003__en-us_topic_0000001195725120_ul136411410115710"><li id="apm_01_0003__en-us_topic_0000001195725120_li1641161055713">Single-component topology: topology of a single component under a certain environment. You can also view the call relationships of direct and indirect upstream and downstream components.</li><li id="apm_01_0003__en-us_topic_0000001195725120_li166821213635">Global application topology: topology of some or all components under an application.</li></ul>
|
||||
<p id="apm_01_0003__en-us_topic_0000001195725120_p1178410198319">The topology displays the call relationships between services within a period. The statistics can be collected from the caller or the callee. You can also view the trend. On the topology, you can view the call relationships between services and check whether the calls between services are normal to quickly locate faults. The application relationships, call data (service and instance metrics), and health status are clearly displayed.</p>
|
||||
</div>
|
||||
<div class="section" id="apm_01_0003__en-us_topic_0000001195725120_section1756183611472"><h4 class="sectiontitle">URL Tracing</h4><p id="apm_01_0003__en-us_topic_0000001195725120_p1769751115459">If you need to find out the call relationships of an important application (for example, calling an e-commerce system's API to create orders), use URL tracing analysis. In APM, URL tracing consumes a large number of resources. Therefore, an entry URL will not be added for tracing by default. However, you can set that if necessary. APM has a limit on the total number of URLs added for tracing. It focuses on tracing the downstream calls for the APIs that are added for tracing. Through URL tracing, you can monitor the call relationships between important APIs and downstream services, and detect problems more precisely.</p>
|
||||
</div>
|
||||
<div class="section" id="apm_01_0003__en-us_topic_0000001195725120_section16710105815235"><h4 class="sectiontitle">Tag Management</h4><p id="apm_01_0003__en-us_topic_0000001195725120_p7379144520242">You can add tags for different environments and applications for easy management.</p>
|
||||
</div>
|
||||
<div class="section" id="apm_01_0003__en-us_topic_0000001195725120_section736516214504"><h4 class="sectiontitle">Intelligent Alarm Reporting</h4><p id="apm_01_0003__en-us_topic_0000001195725120_p33651528508">When an application connected to APM meets a preset alarm condition, an alarm is triggered and reported. In this way, you can quickly learn about service exceptions and rectify faults to prevent loss.</p>
|
||||
<p id="apm_01_0003__en-us_topic_0000001195725120_p56995325529">APM allows you to configure alarm templates. You can create multiple alarm policies under a template and bind them to nodes.</p>
|
||||
<p id="apm_01_0003__en-us_topic_0000001195725120_p107521323247">With intelligent alarm reporting, you can receive alarms by SMS, email, or function.</p>
|
||||
</div>
|
||||
<div class="section" id="apm_01_0003__en-us_topic_0000001195725120_section8445935142417"><h4 class="sectiontitle">Agent Management</h4><p id="apm_01_0003__en-us_topic_0000001195725120_p10708145182415">You can view the deployment and running statuses of the Agents that are connected to APM, and to stop, start, or delete them.</p>
|
||||
</div>
|
||||
<div class="section" id="apm_01_0003__en-us_topic_0000001195725120_section167672023113"><h4 class="sectiontitle">Configuration Management</h4><p id="apm_01_0003__en-us_topic_0000001195725120_p13398849103114"><strong id="apm_01_0003__en-us_topic_0000001195725120_b1174162164317">Configuration Management</strong> consists of <strong id="apm_01_0003__en-us_topic_0000001195725120_b1793801717434">Collection Center</strong> and <strong id="apm_01_0003__en-us_topic_0000001195725120_b14375121584320">Data Masking</strong>.</p>
|
||||
<ul id="apm_01_0003__en-us_topic_0000001195725120_ul1296918498331"><li id="apm_01_0003__en-us_topic_0000001195725120_li1396934912334"><strong id="apm_01_0003__en-us_topic_0000001195725120_b14543143604315">Collection Center</strong>: displays collectors in a centralized manner. You can view and manage various collectors, metrics, and collection parameters supported by APM.</li><li id="apm_01_0003__en-us_topic_0000001195725120_li1783117531334"><strong id="apm_01_0003__en-us_topic_0000001195725120_b1768316142530">Data Masking</strong>: You can set policies to mask the data reported using APM APIs.</li></ul>
|
||||
</div>
|
||||
<div class="section" id="apm_01_0003__en-us_topic_0000001195725120_section203313236354"><h4 class="sectiontitle">System Management</h4><p id="apm_01_0003__en-us_topic_0000001195725120_p19109203310353"><strong id="apm_01_0003__en-us_topic_0000001195725120_b91771133204619">System Management</strong> consists of <strong id="apm_01_0003__en-us_topic_0000001195725120_b18784144244618">Access Keys</strong>, <strong id="apm_01_0003__en-us_topic_0000001195725120_b1993620493462">General Configuration</strong>, and <strong id="apm_01_0003__en-us_topic_0000001195725120_b83811657144611">Agent Count</strong>.</p>
|
||||
<ul id="apm_01_0003__en-us_topic_0000001195725120_ul114621013103614"><li id="apm_01_0003__en-us_topic_0000001195725120_li164621313163619"><strong id="apm_01_0003__en-us_topic_0000001195725120_b8511827152619">Access Keys</strong>: Access Key ID (AK) and Secret Access Key (SK) are your long-term identity credentials. JavaAgents report data with an AK. An AK is used together with an SK to sign requests cryptographically, ensuring that the requests are secret, complete, and correct.</li><li id="apm_01_0003__en-us_topic_0000001195725120_li2650161912363"><strong id="apm_01_0003__en-us_topic_0000001195725120_b5911392529">General Configuration</strong>: You can determine whether to collect data through bytecode instrumentation, and specify the slow request threshold and maximum number of rows to collect.</li><li id="apm_01_0003__en-us_topic_0000001195725120_li10409182419361"><strong id="apm_01_0003__en-us_topic_0000001195725120_b328716012527">Agent Count</strong>: APM can count the Agents used by tenants. You can view the number of Agents by time, region, or Agent type.</li></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="familylinks">
|
||||
<div class="parentlink"><strong>Parent topic:</strong> <a href="apm_01_0001.html">Service Overview</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
31
docs/apm/umn/apm_01_0004.html
Normal file
@ -0,0 +1,31 @@
|
||||
<a name="apm_01_0004"></a><a name="apm_01_0004"></a>
|
||||
|
||||
<h1 class="topictitle1">Application Scenarios</h1>
|
||||
<div id="body8662426"><p id="apm_01_0004__en-us_topic_0000001195245194_p172477203500">APM is widely used. The following lists some typical scenarios.</p>
|
||||
<div class="section" id="apm_01_0004__en-us_topic_0000001195245194_section53112724911"><h4 class="sectiontitle">Diagnosis of Application Exceptions</h4><p id="apm_01_0004__en-us_topic_0000001195245194_p19512737151010"><strong id="apm_01_0004__en-us_topic_0000001195245194_b19197131571919">Pain Points</strong></p>
|
||||
<p id="apm_01_0004__en-us_topic_0000001195245194_p29559161434">In the distributed microservice architecture, enterprises can develop diverse applications efficiently, but face great challenges in traditional O&M and diagnosis. An e-commerce application may face the following problems:</p>
|
||||
<ul id="apm_01_0004__en-us_topic_0000001195245194_ul4628204913326"><li id="apm_01_0004__en-us_topic_0000001195245194_li274142118173">Difficult fault locating<p id="apm_01_0004__en-us_topic_0000001195245194_p87411021121716"><a name="apm_01_0004__en-us_topic_0000001195245194_li274142118173"></a><a name="en-us_topic_0000001195245194_li274142118173"></a>After receiving the feedback from customers, customer service personnel submit problems to technical personnel for troubleshooting. In the distributed microservice architecture, a request usually undergoes multiple services/nodes before a result is returned. If a fault occurs, O&M personnel need to repeatedly view logs on multiple hosts to locate the fault. Even for simple problems, troubleshooting requires cooperation from multiple teams.</p>
|
||||
</li><li id="apm_01_0004__en-us_topic_0000001195245194_li1762804910323">Difficult architecture sort-out<p id="apm_01_0004__en-us_topic_0000001195245194_p1562815499325"><a name="apm_01_0004__en-us_topic_0000001195245194_li1762804910323"></a><a name="en-us_topic_0000001195245194_li1762804910323"></a>When service logic becomes complex, it is difficult to find out the downstream services (databases, HTTP APIs, and caches) that an application depends on, and external services that depend on the application from the code perspective. It is also difficult to sort out the service logic, manage the architecture, and plan capacities. For example, enterprises are hard to determine the number of hosts required in their activities.</p>
|
||||
</li></ul>
|
||||
<p id="apm_01_0004__en-us_topic_0000001195245194_p1573712541215"><strong id="apm_01_0004__en-us_topic_0000001195245194_b8537151992312">Service Implementation</strong></p>
|
||||
<p id="apm_01_0004__en-us_topic_0000001195245194_p8497354144915">APM can diagnose exceptions in large distributed applications. When an application breaks down or a request fails, you can locate faults in minutes through topologies and drill-downs.</p>
|
||||
<ul id="apm_01_0004__en-us_topic_0000001195245194_ul109109683114"><li id="apm_01_0004__en-us_topic_0000001195245194_li0828659144">Visible topology: Abnormal application instances can be automatically discovered on the topology.</li><li id="apm_01_0004__en-us_topic_0000001195245194_li546112010474">Tracing: You can locate root causes in code through drill-downs after identifying abnormal applications.</li><li id="apm_01_0004__en-us_topic_0000001195245194_li291117623113">SQL analysis: APM displays graphs of key metrics (such as number of SQL statement calls, latency, and number of errors), and supports analysis of database performance problems caused by abnormal SQL statements.</li></ul>
|
||||
</div>
|
||||
<div class="section" id="apm_01_0004__en-us_topic_0000001195245194_section64215411461"><h4 class="sectiontitle">User Experience Management</h4><p id="apm_01_0004__en-us_topic_0000001195245194_p17611458254"><strong id="apm_01_0004__en-us_topic_0000001195245194_b17502175614333">Pain Points</strong></p>
|
||||
<p id="apm_01_0004__en-us_topic_0000001195245194_p045155818452">In the Internet era where user experience is of crucial importance, you cannot obtain user access information even if backend services run stably. It is much more difficult to locate frontend problems that occur occasionally. After a system goes online, if users cannot access the system due to errors and APM fails to obtain the information in time, lots of users will choose to leave. If users report page problems, how can APM reproduce the problems immediately? How can error details be obtained for fast troubleshooting?</p>
|
||||
<p id="apm_01_0004__en-us_topic_0000001195245194_p6489314914"><strong id="apm_01_0004__en-us_topic_0000001195245194_b7953115173414">Service Implementation</strong></p>
|
||||
<p id="apm_01_0004__en-us_topic_0000001195245194_p15463832219">APM analyzes the complete process (user request > server > database > server > user request) of application transactions in real time, enabling you to monitor comprehensive user experience in real time. For transactions with poor user experience, locate problems through topologies and tracing.</p>
|
||||
<ul id="apm_01_0004__en-us_topic_0000001195245194_ul1133410518119"><li id="apm_01_0004__en-us_topic_0000001195245194_li858953565317">Application KPI analysis: KPIs such as throughput, latency, and call success rate are displayed, so that you can monitor user experience easily.</li><li id="apm_01_0004__en-us_topic_0000001195245194_li43344571117">Full-link performance tracing: Web services, caches, and databases are traced, so that you can detect performance bottlenecks quickly.</li></ul>
|
||||
</div>
|
||||
<div class="section" id="apm_01_0004__en-us_topic_0000001195245194_section783054361111"><h4 class="sectiontitle">Intelligent Diagnosis</h4><p id="apm_01_0004__en-us_topic_0000001195245194_p252912155333"><strong id="apm_01_0004__en-us_topic_0000001195245194_b94213285195">Pain Points</strong></p>
|
||||
<p id="apm_01_0004__en-us_topic_0000001195245194_p4866112414200">Massive services bring abundant but unassociated application O&M data, including hundreds of monitoring metrics, KPI data, and tracing data. How can metric and alarm data be associated for analysis from the application, component, or URL tracing perspective? How can possible causes be provided for exceptions based on the historical data and O&M experience library?</p>
|
||||
<p id="apm_01_0004__en-us_topic_0000001195245194_p241910016123"><strong id="apm_01_0004__en-us_topic_0000001195245194_b14989343161911">Service Implementation</strong></p>
|
||||
<p id="apm_01_0004__en-us_topic_0000001195245194_p2859131461912">APM supports automatic detection of faults using machine learning algorithms, and intelligent diagnosis. When an exception is found during URL tracing, APM learns historical metric data based on intelligent algorithms, associates exception metrics for multi-dimensional analysis, extracts characteristics of context data (such as resources, parameters, and call structures) for both normal and abnormal services, and locate root causes through cluster analysis.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="familylinks">
|
||||
<div class="parentlink"><strong>Parent topic:</strong> <a href="apm_01_0001.html">Service Overview</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|