Description: The ARMS enterprise-level scenario is described in the integration scenario
According to the best practices, you can see that ARMS OpenAPI can be flexibly integrated into customer link monitoring scenarios and display monitoring information visually and graphically.
1. Background information
Application Real-time Monitoring Service (ARMS) is an Application performance management product that enables you to implement full-stack performance Monitoring and end-to-end whole-link tracing and diagnosis, improving Application o&M efficiency.
This best practice is based on the form of calling ARMS OpenAPI to realize the visual graphical display of link monitoring of customer application scenarios. The environment is ASCM console of proprietary cloud V3.10 version, and the test is conducted by calling ARMS OpenAPI through Postman tool. In the second chapter, the test environment and test tools are introduced in detail. Chapter 3 describes the calling process through a query of all application ARMS OpenAPI interfaces, and includes the list of parameter interfaces that the interface needs to request. In the last chapter, the ARMSOpenAPI interface is used to obtain link monitoring information in a complex application scenario, and the list fields of each interface, the invocation procedure, and the return result are described in detail.
Best practice value
By calling the use of ARMS OpenAPI in application scenarios, readers can intuitively understand the capabilities of ARMS products. In addition, ARMS provides a set of OpenAPI that can be easily integrated into customer applications and quickly realize the complex microservice link monitoring capability. The scope of ARMS monitoring service capability is relatively wide. Contains browser, small program, APP, distributed application and container environment, so the complete monitoring capability, the development process does not need to integrate the form of multiple open source components, so that the microservice program monitoring function development is simple, so that the application operation and maintenance becomes easy.
2. Environmental
Before using ARMS, you need to check the current system environment as follows.
This best practice is based on proprietary Cloud enterprise version V3.10.0 of ARMS.
Note: The versions of ARMS OpenAPI do not change much and use the same, so this document is also applicable to public cloud products or private cloud V3.7.0 and above. Proprietary cloud V3.10.0 console is called ASCM, and earlier versions of V3.10.0 are Apsara Stack.
1. Log in to the ASCM console.
2. On the navigation bar, point to the product and click EDAS.
Figure 1: ASCM
Description: Because ARMS monitors application data, EDAS products are required. In this test, a standard Spring Boot application is deployed through EDAS, ARMS monitoring is enabled, and monitoring data is obtained.
Figure 2: EDAS console
Figure 3: The ARMS console
3. Check the test tools.
This practice will create a Win64 VM in a private cloud environment and then install Postman on the VM for testing.
Figure 4: The Postman test
3. Open API usage
Call URL confirmation
OpenAPI interfaces are REST services. First, verify the URL of the service. The domain name of each private cloud environment is different, which results in different urls. Modify the URL information based on the specific environment. The prefix and port number remain the same. arms.console.example.com:8099/
The name of the
interface
API data sets
/dataset/GeneralQuery.json
Key application performance indicators
/metric/Metric.json
The alarm information
There is no
Application monitoring – Application topology
/trace/Dependecies.json
Event set
/eventset/EventList.json
Call examples – View all applications:
API specification
URL:arms.console.example.com: 8099 / trace/Servi…
The list of parameters
The field names
The field type
Field meaning
Whether the choice
note
_userId
String
The user id
is
User name (for example, arms_admin)
Return format example
{"code": 200, "data": {"details": [{"pid": "string", "regionId": "string", "serviceName": "details": [{"pid": "string", "regionId": "string", "serviceName": "Services ":[// application name list "string", "string"]}, "success": true}Copy the code
Postman calls the result
Parameter Settings: _userId= 121827433423****
Figure 5: Postman call result
4. Application Description
The application topology data, curve diagram, and application monitoring indicator data obtained from ARMS are displayed on the large-screen DataV.
Figure 6: DataV display
5. Query the number of interface calls
The /metric/ metry. json interface is used to obtain application-related performance data and query the number of interface calls.
API specification
- URL: arms.console.example.com: 8099 / metric/Metr…
- Interface description:
The field names
The field type
Field meaning
Whether the choice
note
startTime
Long
Start time for querying data
is
There is no
endTime
Long
End time for querying data
is
There is no
intervalInSec
Integer
The time interval
no
Advice to fill in
metric
String
The metric field
is
Fill in details. Refer to the parameter filling demonstration
filters
List[String]
Filter fields
is
Fill in details. Refer to the parameter filling demonstration
measures
List[String]
indicators
is
Fill in details. Refer to the parameter filling demonstration
dimensions
List[String]
The dimension
is
Fill in details. Refer to the parameter filling demonstration
orderBy
String
Sort field
no
There is no
sortOrder
String
The sorting
no
Default unsorted (ASC or DESC)
limit
Integer
Returns the number of
no
There is no
_userId
String
The user id
is
User name (for example, arms_admin)
Invoke the sample
Example Query the number of interface calls of a specified application in the past 7 days
Parameter setting example:
The field names
The field type
Field meaning
Will choose
The sample value
Source of value
startTime
Long
Start time for querying data
is
1578199319898
The system time
endTime
Long
End time for querying data
is
1578804119898
The system time
intervalInSec
Integer
The time interval
no
The default value is 3600 seconds, that is, 1 hour
Set manually
metric
String
The metric field indicates the metric to be queried
is
APPSTAT.DETAIL
Set manually
filters
List[String]
Filter fields, strictly according to format, otherwise call error
is
[{key=pid,value=1218274334230390@db61f75c2f******},{key=regionId,value=cn-******-d01}]
Pid and RegionID are from a proprietary cloud environment
measures
List[String]
indicators
is
[rt,count,error,errrate]
The API documentation
dimensions
List[String]
The dimension
is
[pid,rpcType,rootIp]
The API documentation
orderBy
String
Sort field
no
There is no
There is no
sortOrder
String
The sorting
no
Default unsorted (ASC or DESC)
There is no
limit
Integer
Returns the number of
no
There is no
There is no
_userId
String
The user id
is
121827433423 * * * *
There is no
The query results
Parameter Settings:
Figure 7: Parameter Settings
Results:
- The result is a JSON data set.
- The data set indicates the query status. 200 is returned on success, and an error code and reason are returned on failure. Typical errors such as missing required parameters, authentication errors, etc. (because the filters parameter is not formatted as required).
- The organization of the result set returned by OpenAPI is related to the start time, end time, and data interval of the query data. This query is for the last 7 days, and the data interval is set to 24 hours, so the result set returns a set of 7 “data”.
- Count:0.0 PID: rpcDesc; rpcType:0;
- Adjusting the start, end, and interval of the query will affect the number of data items. Adjusting interface query parameters will affect the data in each data item.
- If you need to calculate some aggregate value, such as the total number of HTTP calls over the past 7 days, you need to add up the multiple pieces of data yourself.
6. Query the number of exceptions
Use the /metric/ metry. json interface to obtain application performance data and query the number of exceptions.
API specification
- URL: arms.console.example.com: 8099 / metric/Metr…
- Interface description:
The field names
The field type
Field meaning
Whether the choice
note
startTime
Long
Start time for querying data
is
There is no
endTime
Long
End time for querying data
is
There is no
intervalInSec
Integer
The time interval
no
Advice to fill in
metric
String
The metric field
is
Fill in details for reference below
filters
List[String]
Filter fields
is
Fill in details for reference below
measures
List[String]
indicators
is
Fill in details for reference below
dimensions
List[String]
The dimension
is
Fill in details for reference below
orderBy
String
Sort field
no
There is no
sortOrder
String
The sorting
no
Default unsorted (ASC or DESC)
limit
Integer
Returns the number of
no
There is no
_userId
String
The user id
is
User name (for example, arms_admin)
Invoke the sample
Example Query the number of interface calls of a specified application in the past 7 days.
Parameter setting example:
The field names
The field type
Field meaning
Will choose
The sample value
Source of value
startTime
Long
Start time for querying data
is
1577980826988
The system time
endTime
Long
End time for querying data
is
1578585626989
The system time
intervalInSec
Integer
The time interval
no
The default value is 3600 seconds, that is, 1 hour
Set manually
metric
String
The metric field indicates the metric to be queried
is
APPSTAT.EXCEPTION
Set manually
filters
List[String]
Filter fields, strictly according to format, otherwise call error.
is
[{key=pid,value=1218274334230390@db61f75c2f******},{key=regionId,value=cn-******-d01}]
Pid and RegionID are from a proprietary cloud environment
measures
List[String]
indicators
is
[count]
The API documentation
dimensions
List[String]
The dimension
is
[pid,rpc,endpoint,exceptionInfo]
The API documentation
orderBy
String
Sort field
no
There is no
There is no
sortOrder
String
The sorting
no
Default unsorted (ASC or DESC)
There is no
limit
Integer
Returns the number of
no
There is no
There is no
_userId
String
The user id
is
1218274334230390
There is no
The query results
Parameter Settings:
Figure 8: Parameter Settings
Query result:
Figure 9: Query results
Results:
- The result is a JSON data set.
- The data set indicates the query status. 200 is returned on success, and an error code and reason are returned on failure. Typical errors such as missing required parameters, authentication errors, etc. (because the filters parameter is not formatted as required).
- No relevant data is found in this query, so the number of exceptions is 0.
7. Query the number of application instances
Use the /metric/ metric. Json interface to obtain application-related performance data and query the number of current application instances.
API specification
- URL: arms.console.example.com: 8099 / metric/Metr…
- Interface description:
The field names
The field type
Field meaning
Whether the choice
note
startTime
Long
Start time for querying data
is
There is no
endTime
Long
End time for querying data
is
There is no
intervalInSec
Integer
The time interval
no
Advice to fill in
metric
String
The metric field
is
Fill in details for reference below
filters
List[String]
Filter fields
is
Fill in details for reference below
measures
List[String]
indicators
is
Fill in details for reference below
dimensions
List[String]
The dimension
is
Fill in details for reference below
orderBy
String
Sort field
no
There is no
sortOrder
String
The sorting
no
Default unsorted (ASC or DESC)
limit
Integer
Returns the number of
no
There is no
_userId
String
The user id
is
User name (for example, arms_admin)
Invoke the sample
Example Query the number of interface calls of a specified application in the past 7 days.
Parameter setting example:
The field names
The field type
Field meaning
Will choose
The sample value
Source of value
startTime
Long
Start time for querying data
is
1577980826988
The system time
endTime
Long
End time for querying data
is
1578585626989
The system time
intervalInSec
Integer
The time interval
no
The default value is 3600 seconds, that is, 1 hour
Set manually
metric
String
The metric field indicates the metric to be queried
is
APPSTAT.DETAIL
Set manually
filters
List[String]
Filter fields, strictly according to format, otherwise call error.
is
[{key=pid,value=1218274334230390@db61f75c2f28609},{key=regionId,value=******}]
Pid and RegionID are from a proprietary cloud environment
measures
List[String]
indicators
is
[count]
The API documentation
dimensions
List[String]
The dimension
is
[pid,rootIp]
The API documentation
orderBy
String
Sort field
no
There is no
There is no
sortOrder
String
The sorting
no
Default unsorted (ASC or DESC)
There is no
limit
Integer
Returns the number of
no
There is no
There is no
_userId
String
The user id
is
12182743342 * * * * * *
There is no
The query results
Parameter Settings:
Figure 10: Parameter Settings
Query result:
Figure 11: Query results
Results:
- The result is a JSON data set.
- The data set indicates the query status. 200 is returned on success, and an error code and reason are returned on failure. Typical errors such as missing required parameters, authentication errors, etc. (because the filters parameter is not formatted as required).
- The organization of the result set returned by Openapi is related to the start time, end time, and data interval of the query data. This query is for the last 7 days, and the data interval is set to 24 hours, so the result set returns a set of 7 “data”.
- Each data includes the queries specified in measure and Dimension. In this result set, for example, this includes: Count:0.0 RootIP
- The query requirement is to see how many instances are deployed in this application. Therefore, the number of instances can be calculated by calculating the different IP addresses in the result. Another method is to set the value of intervalInSec and make it wait for the interval of the query, so that the number of entries in the resulting data set is the number of instances, because each IP will have one entry.
8. Query the current application topology
The /trace/Dependecies. Json interface is used to obtain the application topology data.
API specification
- URL: arms.console.example.com: 8099 / trace/Depen…
- Interface description:
The field names
The field type
Field meaning
Whether the choice
note
startTime
Long
Start time for querying data
is
There is no
endTime
Long
End time for querying data
is
There is no
_userId
String
The user id
is
User name (for example, arms_admin)
type
String
Types of queries
is
To query ALL relationships, use ALL; Single application relationships using apps
pid
String
Apply the corresponding PID
no
This parameter is mandatory when type=APP
Invoke the sample
Example Query the number of interface calls of a specified application in the past 7 days.
Parameter setting example:
This test was conducted on January 12, and the data of the past 7 days were queried.
The field names
The field type
Field meaning
Will choose
The sample value
startTime
Long
Start time for querying data
is
1578199319898 (5 January)
endTime
Long
End time for querying data
is
1578804119898 (12 January)
_userId
String
The user id
is
1218274334 * * * * * *
type
String
Types of queries
is
APP
pid
String
Apply the corresponding PID
no
1218274334230390@db61f75c******
The query results
Parameter Settings:
Figure 12: Parameter Settings
Query result:
{" code ": 200," data ": {" link" : [{" code ": 200," data ": {" link" : [{" callCount ": 26997.0," the child ": "Demo-Service", "childNodeId": 731107445, "childPid": "1218274334230390@db61f75c2******", "elapsed": 16.2328, "errorCount": 16.0, "parent": "USER", "parentNodeId": 812148234, "parentPid": "1218274334230390@db61f75c2******", "protocol": "HTTP"}, {"callCount": 8.0, "child": "ChildNodeId ": -1762019072, "childPid":" PDSA_lHH_rocketMQ ", "Elapsed ": 11190.5, "errorCount": 8.0, "parent": "dem-service ", "parentNodeId": 731107445, "parentPid": "1218274334230390@db61f75c2******", "protocol": "AliWareMQ}]," "nodes" : [{" elapsed ": 0.0," errorCount ": 0.0," id ", 812148234, "name" : "USER", "pid" : "1218274334230390 @ db61f75c2 * * * * * *", "requestCount" : 0.0, "type" : "USER"}, {" elapsed ": 0.0," errorCount ": 0.0," id ": 731107445, "name": "demo-service ", "pid": "1218274334230390@db61f75c2******", "requestCount": 0.0, "type": "MQ_PRODUCER"}, {" elapsed ": 0.0," errorCount ": 0.0," id ": - 1762019072," name ":" * * * * _rocketmq pdsa_ ", "pid" : "Pdsa_ _rocketmq * * * *", "requestCount" : 0.0, "type" : "METAQ"}}], "success" : true}Copy the code
The actual topology is as follows:
Figure 13: Topology
Results:
- The result is a JSON data set.
- The data set indicates the query status. 200 is returned on success, and an error code and reason are returned on failure. Typical errors such as missing required parameters, authentication errors, etc. (because the filters parameter is not formatted as required).
- The query result is the node data and connection data of a dot plot, and the user needs to assemble the corresponding data according to the chart control.
The original link
This article is ali Cloud original content, shall not be reproduced without permission.