@appland/appmap 3.133.0 → 3.134.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/built/cmds/index/index.js +3 -3
- package/built/cmds/index/index.js.map +1 -1
- package/built/cmds/index/rpc.js +18 -7
- package/built/cmds/index/rpc.js.map +1 -1
- package/built/cmds/navie/help.js +122 -0
- package/built/cmds/navie/help.js.map +1 -0
- package/built/docs/CLA Instructions.pdf +0 -0
- package/built/docs/Code of Conduct for Contributors.pdf +0 -0
- package/built/docs/analysis/rules-reference.html +27 -0
- package/built/docs/appmap-overview.md +54 -0
- package/built/docs/community.md +27 -0
- package/built/docs/diagrams/dependency-map.md +63 -0
- package/built/docs/diagrams/flamegraph.md +91 -0
- package/built/docs/diagrams/how-it-works.md +60 -0
- package/built/docs/diagrams/index.md +20 -0
- package/built/docs/diagrams/sequence-diagram.md +75 -0
- package/built/docs/diagrams/trace-view.md +55 -0
- package/built/docs/guides/configuring-analysis.md +157 -0
- package/built/docs/guides/handling-large-appmaps.md +43 -0
- package/built/docs/guides/index.md +17 -0
- package/built/docs/guides/openapi.md +104 -0
- package/built/docs/guides/reading-sql-in-appmaps.md +67 -0
- package/built/docs/guides/refine-appmaps.md +186 -0
- package/built/docs/guides/reverse-engineering.md +375 -0
- package/built/docs/guides/runtime-code-review.md +108 -0
- package/built/docs/integrations/atlassian-compass.md +24 -0
- package/built/docs/integrations/atlassian-confluence.md +50 -0
- package/built/docs/integrations/docker.md +108 -0
- package/built/docs/integrations/github-actions.md +24 -0
- package/built/docs/integrations/index.md +17 -0
- package/built/docs/integrations/plantuml.md +65 -0
- package/built/docs/integrations/postman.md +29 -0
- package/built/docs/integrations/readme.md +38 -0
- package/built/docs/integrations/smartbear-swaggerhub.md +125 -0
- package/built/docs/navie/bring-your-own-key.md +98 -0
- package/built/docs/navie/demo.md +49 -0
- package/built/docs/navie/how-navie-works.md +26 -0
- package/built/docs/navie/how-to-use-navie.md +152 -0
- package/built/docs/navie/index.md +20 -0
- package/built/docs/reference/analysis-labels.md +48 -0
- package/built/docs/reference/analysis-rules.md +60 -0
- package/built/docs/reference/appmap-agent-js.md +215 -0
- package/built/docs/reference/appmap-client-cli.md +527 -0
- package/built/docs/reference/appmap-gradle-plugin.md +140 -0
- package/built/docs/reference/appmap-java.md +310 -0
- package/built/docs/reference/appmap-maven-plugin.md +163 -0
- package/built/docs/reference/appmap-node.md +185 -0
- package/built/docs/reference/appmap-python.md +395 -0
- package/built/docs/reference/appmap-ruby.md +514 -0
- package/built/docs/reference/github-action.md +164 -0
- package/built/docs/reference/index.md +23 -0
- package/built/docs/reference/jetbrains.md +119 -0
- package/built/docs/reference/license-key-install.md +73 -0
- package/built/docs/reference/remote-recording-api.md +97 -0
- package/built/docs/reference/uninstalling-appmap.md +109 -0
- package/built/docs/reference/vscode.md +125 -0
- package/built/docs/setup-appmap-in-ci/example-projects.md +20 -0
- package/built/docs/setup-appmap-in-ci/how-it-works.md +42 -0
- package/built/docs/setup-appmap-in-ci/in-circleci.md +422 -0
- package/built/docs/setup-appmap-in-ci/in-github-actions.md +176 -0
- package/built/docs/setup-appmap-in-ci/index.md +21 -0
- package/built/docs/setup-appmap-in-ci/matrix-builds.md +224 -0
- package/built/docs/setup-appmap-in-ci/troubleshooting.md +70 -0
- package/built/docs/setup-appmap-in-your-code-editor/add-appmap-to-your-code-editor.md +43 -0
- package/built/docs/setup-appmap-in-your-code-editor/appmap-analysis.md +76 -0
- package/built/docs/setup-appmap-in-your-code-editor/generate-appmaps-from-tests.md +92 -0
- package/built/docs/setup-appmap-in-your-code-editor/generate-appmaps-with-remote-recording.md +111 -0
- package/built/docs/setup-appmap-in-your-code-editor/generate-appmaps-with-request-recording.md +79 -0
- package/built/docs/setup-appmap-in-your-code-editor/how-appmap-works.md +165 -0
- package/built/docs/setup-appmap-in-your-code-editor/index.md +23 -0
- package/built/docs/setup-appmap-in-your-code-editor/navigating-appmaps.md +58 -0
- package/built/docs/setup-appmap-in-your-code-editor/navigating-code-objects.md +66 -0
- package/built/docs/unused_for_now_index.html +11 -0
- package/built/rpc/appmap/stats.js +1 -1
- package/built/rpc/appmap/stats.js.map +1 -1
- package/built/rpc/explain/explain.js +6 -1
- package/built/rpc/explain/explain.js.map +1 -1
- package/built/rpc/explain/navie/navie-local.js +6 -2
- package/built/rpc/explain/navie/navie-local.js.map +1 -1
- package/built/rpc/explain/navie/navie-remote.js +5 -1
- package/built/rpc/explain/navie/navie-remote.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: docs
|
|
3
|
+
title: Docs - Reference
|
|
4
|
+
toc: true
|
|
5
|
+
reference: true
|
|
6
|
+
name: AppMap for JetBrains
|
|
7
|
+
step: 2
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# AppMap for JetBrains
|
|
11
|
+
|
|
12
|
+
- [AppMap tool window](#appmap-tool-window)
|
|
13
|
+
- ["Start with AppMap" for Java](#start-with-appmap-for-java)
|
|
14
|
+
- [Create AppMaps from JUnit test runs](#create-appmaps-from-junit-test-runs)
|
|
15
|
+
- [Disable specific JUnit tests](#disable-specific-junit-tests)
|
|
16
|
+
- [Running a Java application with AppMap](#running-a-java-application-with-appmap)
|
|
17
|
+
- [Remote recording](#remote-recording)
|
|
18
|
+
- [AppMap Plugin actions](#appmap-plugin-actions)
|
|
19
|
+
- [Generate OpenAPI Definitions](#generate-openapi-definitions)
|
|
20
|
+
- [Troubleshooting](#troubleshooting)
|
|
21
|
+
- [GitHub repository](#github-repository)
|
|
22
|
+
|
|
23
|
+
## AppMap tool window
|
|
24
|
+
|
|
25
|
+
The AppMap tool window shows all AppMaps in your open projects. You can open it from the top level menu (`View -> Tools Windows -> AppMaps`), with an AppMap action or by clicking on its tab in the UI.
|
|
26
|
+
|
|
27
|
+
<img class="intellij-screenshot" src="/assets/img/intellij-appmap-tool-window.webp"/>
|
|
28
|
+
|
|
29
|
+
AppMap tool window actions:
|
|
30
|
+
|
|
31
|
+
- Alphabetical listing of all AppMaps in the project, sorted by name.
|
|
32
|
+
- Double-click on any AppMap to open it.
|
|
33
|
+
- Search for an AppMap by its name.
|
|
34
|
+
- Start/stop [remote recordings](#remote-recording).
|
|
35
|
+
- View the Quickstart guide.
|
|
36
|
+
|
|
37
|
+
## "Start with AppMap" for Java
|
|
38
|
+
|
|
39
|
+
**NOTE:** This section only applies to Java applications.
|
|
40
|
+
|
|
41
|
+
Installing the AppMap JetBrains plugin adds custom buttons and menu options to the JetBrains editor interface. These can be used to run your Java application code with AppMap automatically configured, saving you from manually changing your Maven or Gradle settings. This is the recommended approach for all Java users using JetBrains editors like IntelliJ.
|
|
42
|
+
|
|
43
|
+
For exmaple, if you right click on your main class file you'll see a new menu item under "More Run/Debug" to `Start with AppMap`. Selecting this option will start your application with the AppMap libraries enabled. From here, you can interact with your application to generate [request recordings](/docs/reference/appmap-java.html#requests-recording) or use [remote recording](#remote-recording)
|
|
44
|
+
|
|
45
|
+
<img class="intellij-screenshot" src="/assets/img/jetbrains-run-main-with-appmap.webp"/>
|
|
46
|
+
|
|
47
|
+
You can also use this custom button to run a specific test or group of tests with the `Start with AppMap` option. Similar to above, right click on a single test or a group of tests and use the custom button under "More Run/Debug" to `Start with AppMap`.
|
|
48
|
+
|
|
49
|
+
<img class="intellij-screenshot" src="/assets/img/jetbrains-run-test-with-appmap.webp"/>
|
|
50
|
+
|
|
51
|
+
{% include vimeo.html id='916087828' %}
|
|
52
|
+
|
|
53
|
+
### Create AppMaps from JUnit test runs
|
|
54
|
+
|
|
55
|
+
1. [Install the JetBrains plugin](https://plugins.jetbrains.com/plugin/16701-appmap) if you haven't already.
|
|
56
|
+
2. Open your test file in the editor. Each method marked with JUnit's `@Test` annotation will produce an AppMap.
|
|
57
|
+
3. Run the test(s) with AppMap by clicking the icon next to the test class and then selecting "Start with AppMap", or by clicking the AppMap run configuration button:
|
|
58
|
+
<img class="intellij-screenshot" src="/assets/img/run-config-test.png"/>
|
|
59
|
+
|
|
60
|
+
#### Disable specific JUnit tests
|
|
61
|
+
|
|
62
|
+
To disable recording for a particular JUnit test (for example, a performance
|
|
63
|
+
test), list the class or methods under `exclude` in the project's `appmap.yml` configuration file.
|
|
64
|
+
|
|
65
|
+
### Running a Java application with AppMap
|
|
66
|
+
|
|
67
|
+
When you run a Java application with the AppMap agent, [remote recording](/docs/recording-methods.html#remote-recording) will be enabled. (Note: For this to work, your application must include a web server).
|
|
68
|
+
|
|
69
|
+
1. [Install the JetBrains plugin](https://plugins.jetbrains.com/plugin/16701-appmap) if you haven't already.
|
|
70
|
+
2. Open your application file in the editor.
|
|
71
|
+
3. Run your application with AppMap by clicking the icon next to the main class you wish to run and then selecting "Start with AppMap", or by clicking the AppMap run configuration button:
|
|
72
|
+
<img class="intellij-screenshot" src="/assets/img/run-config-start.png"/>
|
|
73
|
+
1. With the application running, follow the [remote recording](#remote-recording) instructions below to (starting at step 3) create AppMaps.
|
|
74
|
+
|
|
75
|
+
## Remote recording
|
|
76
|
+
|
|
77
|
+
You can make a [remote recording](../recording-methods#remote-recording) from within the JetBrains IDE.
|
|
78
|
+
|
|
79
|
+
1. [Install the JetBrains plugin](https://plugins.jetbrains.com/plugin/16701-appmap) if you haven't already.
|
|
80
|
+
2. Start your application with remote recording enabled. For Java, [run your Java application with AppMap](#running-a-java-application-with-appmap). For other languages, consult the [agent reference](/docs/reference) for details.
|
|
81
|
+
3. To start a recording, click the remote recording button, or use the command **Start AppMap recording**.
|
|
82
|
+
<img class="intellij-screenshot" src="/assets/img/docs/intellij-remote-start.png"/>
|
|
83
|
+
4. Enter the URL where your application is running.
|
|
84
|
+
<img class="intellij-screenshot" src="/assets/img/docs/intellij-remote-url.png"/>
|
|
85
|
+
5. Interact with your app through its UI or API. Then click the button to stop the recording, or use the command **Stop AppMap recording**.
|
|
86
|
+
<img class="intellij-screenshot" src="/assets/img/docs/intellij-remote-stop.png"/>
|
|
87
|
+
6. You'll be prompted to save the AppMap to a file, and it will be opened.
|
|
88
|
+
<img class="intellij-screenshot" src="/assets/img/docs/intellij-remote-save.png"/>
|
|
89
|
+
|
|
90
|
+
For more details about remote recording, see:
|
|
91
|
+
|
|
92
|
+
* [Recording methods > Remote recording](/docs/recording-methods)
|
|
93
|
+
* [Remote recording API](../reference/remote-recording-api)
|
|
94
|
+
|
|
95
|
+
## AppMap Plugin actions
|
|
96
|
+
|
|
97
|
+
To open the list of AppMap plugin actions, press `CTRL+SHIFT+A` on Windows and Linux, or `COMMAND+SHIFT+A` on macOS, and type `AppMap`. You can also find these actions at `Tools > AppMap` of the main menu.
|
|
98
|
+
|
|
99
|
+
The command names should be self-explanatory.
|
|
100
|
+
|
|
101
|
+
## Generate OpenAPI Definitions
|
|
102
|
+
|
|
103
|
+
After [recording AppMaps](/docs/recording-methods.html) for your project, select "Generate OpenAPI" from the AppMap instructions quick start in the lower right hand column.
|
|
104
|
+
|
|
105
|
+

|
|
106
|
+
|
|
107
|
+
Selecting the "Generate OpenAPI Definitions" button will open a new file with your OpenAPI definition document to save locally, share with your team or use with 3rd party API management tools [like Postman](https://blog.postman.com/new-postman-integration-with-appmap-create-and-manage-always-accurate-collections/)
|
|
108
|
+
|
|
109
|
+

|
|
110
|
+
|
|
111
|
+
## Troubleshooting
|
|
112
|
+
|
|
113
|
+
#### Downloading plugin logs
|
|
114
|
+
|
|
115
|
+
AppMap technical support may ask you for your IDE logs to diagnose issues with the plugin's behavior. If so, go to the `Help` menu in your editor and select `Collect Logs and Diagnostic Data`. This will create a `.zip` file on your local machine and open a file explorer window to it. You can then safely send that file to AppMap within your technical support ticket conversation.
|
|
116
|
+
|
|
117
|
+
## GitHub repository
|
|
118
|
+
|
|
119
|
+
[https://github.com/getappmap/appmap-intellij-plugin](https://github.com/getappmap/appmap-intellij-plugin)
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: docs
|
|
3
|
+
title: Docs - Reference
|
|
4
|
+
toc: true
|
|
5
|
+
reference: true
|
|
6
|
+
step: 17
|
|
7
|
+
name: License Key Installation
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# AppMap Code Editor license key installation
|
|
11
|
+
|
|
12
|
+
After receiving your AppMap license key follow the steps below.
|
|
13
|
+
|
|
14
|
+
For the license key to successfully validate with AppMap systems ensure your machine is able to connect to <a href="https://getappmap.com">https://getappmap.com</a>. You can test by opening it in your web browser.
|
|
15
|
+
|
|
16
|
+
- [VS Code license key install steps](#vs-code-license-key-install-steps)
|
|
17
|
+
- [JetBrains license key install steps](#jetbrains-license-key-install-steps)
|
|
18
|
+
|
|
19
|
+
## VS Code license key install steps
|
|
20
|
+
|
|
21
|
+
1) Open the VS Code Command Palette
|
|
22
|
+
- Mac: `Cmd + Shift + P`
|
|
23
|
+
- Windows/Linux: `Ctrl + Shift + P`
|
|
24
|
+
|
|
25
|
+
2) Search for `AppMap license`
|
|
26
|
+
|
|
27
|
+
<img class="video-screenshot" src="/assets/img/license-key-vscode-1.webp"/>
|
|
28
|
+
|
|
29
|
+
3) Enter the license key provided by the AppMap team and press `Enter` to submit
|
|
30
|
+
|
|
31
|
+
<img class="video-screenshot" src="/assets/img/license-key-vscode-2.webp"/>
|
|
32
|
+
|
|
33
|
+
4) Click `Allow` to allow the AppMap extension to use your license key.
|
|
34
|
+
|
|
35
|
+
<img class="video-screenshot" src="/assets/img/license-key-vscode-3.webp"/>
|
|
36
|
+
|
|
37
|
+
5) AppMap will be activated for Visual Studio Code.
|
|
38
|
+
|
|
39
|
+
<br/>
|
|
40
|
+
|
|
41
|
+
## JetBrains license key install steps
|
|
42
|
+
|
|
43
|
+
1) Select `Tools` from the main menu of your JetBrains Code Editor. Then select `AppMap` -> `Enter License Key`.
|
|
44
|
+
|
|
45
|
+
<img class="video-screenshot" src="/assets/img/license-key-jetbrains-1.webp"/>
|
|
46
|
+
|
|
47
|
+
2) Enter the license key provided by the AppMap team and press `Ok` to submit.
|
|
48
|
+
|
|
49
|
+
<img class="video-screenshot" src="/assets/img/license-key-jetbrains-2.webp"/>
|
|
50
|
+
|
|
51
|
+
3) You will now be logged into AppMap for the IDE.
|
|
52
|
+
|
|
53
|
+
<img class="video-screenshot" src="/assets/img/license-key-jetbrains-3.webp"/>
|
|
54
|
+
|
|
55
|
+
### JetBrains Install Video Demo
|
|
56
|
+
|
|
57
|
+
<div class="video-container" onclick="JetBrainsplayVideo()">
|
|
58
|
+
<img id="JetBrainsvideoPlaceholder" src="/assets/img/appmap-license-jetbrains-placeholder.webp" style="display:block; width: 100%;">
|
|
59
|
+
<video id="JetBrainsvideoPlayer" playsinline loop style="display:none;">
|
|
60
|
+
<source src="/assets/video/appmap-license-key-jetbrains.webm" type="video/webm">
|
|
61
|
+
<source src="/assets/video/appmap-license-key-jetbrains.mp4" type="video/mp4">
|
|
62
|
+
</video>
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
<script>
|
|
66
|
+
function JetBrainsplayVideo() {
|
|
67
|
+
var video = document.getElementById('JetBrainsvideoPlayer');
|
|
68
|
+
var placeholder = document.getElementById('JetBrainsvideoPlaceholder');
|
|
69
|
+
placeholder.style.display = 'none';
|
|
70
|
+
video.style.display = 'block';
|
|
71
|
+
video.play();
|
|
72
|
+
}
|
|
73
|
+
</script>
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: docs
|
|
3
|
+
title: Docs - Reference
|
|
4
|
+
toc: false
|
|
5
|
+
reference: true
|
|
6
|
+
name: Remote recording API
|
|
7
|
+
step: 10
|
|
8
|
+
redirect_from: [/docs/reference/remote-recording]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Remote recording API
|
|
12
|
+
|
|
13
|
+
- [Remote recording API](#remote-recording-api)
|
|
14
|
+
- [Start a remote recording](#start-a-remote-recording)
|
|
15
|
+
- [Retrieve the current recording status](#retrieve-the-current-recording-status)
|
|
16
|
+
- [Stop a remote recording](#stop-a-remote-recording)
|
|
17
|
+
- [Save recorded AppMaps to disk](#save-recorded-appmaps-to-disk)
|
|
18
|
+
|
|
19
|
+
When an application is set up for AppMap recording, the AppMap agent injects itself into the web stack and handles the remote recording HTTP requests, accepting requests on the same port as the web interface of the application.
|
|
20
|
+
|
|
21
|
+
For example, if you deployed your application to a local Tomcat server listening on port 8080, call the remote recording endpoints at `http://localhost:8080/_appmap/*`
|
|
22
|
+
|
|
23
|
+
## Start a remote recording
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
POST /_appmap/record
|
|
27
|
+
```
|
|
28
|
+
{: .example-code}
|
|
29
|
+
|
|
30
|
+
No payload in the request is expected.
|
|
31
|
+
|
|
32
|
+
This endpoint returns `200` if a new recording session was started successfully or `409` if an existing recording session was already in progress. It returns an empty body in the response.
|
|
33
|
+
|
|
34
|
+
**curl example:**
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
curl -H 'Accept: application/json' -sXPOST http://localhost:8080/_appmap/record
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Retrieve the current recording status
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
GET /_appmap/record
|
|
44
|
+
```
|
|
45
|
+
{: .example-code}
|
|
46
|
+
|
|
47
|
+
No payload in the request is expected.
|
|
48
|
+
|
|
49
|
+
This endpoint returns status `200` .
|
|
50
|
+
|
|
51
|
+
AppMap recording status is returned in the response body, the "enabled" property is set to `true` when recording is in progress:
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
Content-type: application/json
|
|
55
|
+
{
|
|
56
|
+
"enabled": boolean
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**curl example:**
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
curl -H 'Accept: application/json' -sXGET http://localhost:8080/_appmap/record
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Stop a remote recording
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
DELETE /_appmap/record
|
|
70
|
+
```
|
|
71
|
+
{: .example-code}
|
|
72
|
+
|
|
73
|
+
No payload in the request is expected.
|
|
74
|
+
|
|
75
|
+
This method returns `200` If an active recording session was stopped successfully, and the body contains AppMap JSON, or `404` If there was no active recording session to be stopped.
|
|
76
|
+
|
|
77
|
+
If successful, the recorded AppMap is returned in the response body.
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
Content-type: application/json
|
|
81
|
+
{
|
|
82
|
+
"version": "1.x",
|
|
83
|
+
"metadata": {},
|
|
84
|
+
"classMap": [],
|
|
85
|
+
"events": [],
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**curl example:**
|
|
90
|
+
```
|
|
91
|
+
curl -H 'Accept: application/json' -sXDELETE http://localhost:8080/_appmap/record -o MyFirstAppMap.appmap.json
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Save recorded AppMaps to disk
|
|
95
|
+
|
|
96
|
+
Save the returned payload to disk as an `.appmap.json` file. We recommend that the AppMap file be named after the recorded test and that additional metadata is added to the recorded AppMap prior to saving, such as the AppMap’s name or labels indicating the test outcome and framework. See the [AppMap specification](https://github.com/getappmap/appmap#appmap-data-specification) for details about AppMap metadata.
|
|
97
|
+
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: docs
|
|
3
|
+
title: Docs - Reference
|
|
4
|
+
toc: true
|
|
5
|
+
reference: true
|
|
6
|
+
name: Uninstalling AppMap
|
|
7
|
+
step: 18
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Uninstalling AppMap
|
|
11
|
+
AppMap consists of several components, each of which may require a different uninstall approach depending on what changes were made to your applications during installation.
|
|
12
|
+
|
|
13
|
+
- [Uninstalling AppMap](#uninstalling-appmap)
|
|
14
|
+
- [Uninstalling AppMap IDE Plugins](#uninstalling-appmap-ide-plugins)
|
|
15
|
+
- [Uninstalling the AppMap VS Code Extension](#uninstalling-the-appmap-vs-code-extension)
|
|
16
|
+
- [Uninstalling the AppMap JetBrains Plugin](#uninstalling-the-appmap-jetbrains-plugin)
|
|
17
|
+
- [Removing AppMap libraries from your application](#removing-appmap-libraries-from-your-application)
|
|
18
|
+
- [Ruby](#ruby)
|
|
19
|
+
- [Java](#java)
|
|
20
|
+
- [Python](#python)
|
|
21
|
+
- [Removing AppMap-generated files from your project](#removing-appmap-generated-files-from-your-project)
|
|
22
|
+
|
|
23
|
+
## Uninstalling AppMap IDE Plugins
|
|
24
|
+
|
|
25
|
+
### Uninstalling the AppMap VS Code Extension
|
|
26
|
+
To uninstall AppMap from VS Code, first select the Extensions control to view your installed extensions.
|
|
27
|
+
<img class="video-screenshot" src="/assets/img/docs/extensions-vsc.png"/>
|
|
28
|
+
|
|
29
|
+
Next, find and select `AppMap` in the list of installed extensions. Then click the `Uninstall` button to remove the AppMap extension from your editor.
|
|
30
|
+
<img class="video-screenshot" src="/assets/img/docs/uninstall-vsc.png"/>
|
|
31
|
+
|
|
32
|
+
Finally, if your project supports AppMap [Launch Configurations](https://appmap.io/docs/reference/vscode.html#run-with-appmap-for-java), you can now remove the AppMap specific details in the `.vscode/launch.json` and the `.vscode/settings.json` files.
|
|
33
|
+
|
|
34
|
+
<img class="video-screenshot" src="/assets/img/docs/launch-configuration-uninstall.webp"/>
|
|
35
|
+
|
|
36
|
+
<p class="alert alert-info">
|
|
37
|
+
Please note that even after uninstalling the IDE extension, your project may still be configured to load an AppMap library and continue to record maps when your application is run. You should follow the language-specific uninstall instructions below to remove the AppMap library from your project.
|
|
38
|
+
</p>
|
|
39
|
+
|
|
40
|
+
### Uninstalling the AppMap JetBrains Plugin
|
|
41
|
+
To uninstall AppMap from JetBrains editors like IntelliJ and PyCharm, open your editor's `Settings` panel from the main menu. Select `Plugins` on the left panel, then find and select `AppMap` in the list of installed plugins. Then click the `Uninstall` button to remove the AppMap extension from your editor.
|
|
42
|
+
<p>
|
|
43
|
+
<img class="video-screenshot" src="/assets/img/docs/plugins-jetbrains.webp"/>
|
|
44
|
+
</p>
|
|
45
|
+
|
|
46
|
+
<p class="alert alert-info">
|
|
47
|
+
Please note that even after uninstalling the IDE plugin, your project may still be configured to load an AppMap library and continue to record maps when your application is run. You should follow the language-specific uninstall instructions below to remove the AppMap library from your project.
|
|
48
|
+
</p>
|
|
49
|
+
|
|
50
|
+
## Removing AppMap libraries from your application
|
|
51
|
+
Removing AppMap from your application typically involves removing the AppMap library from your project's dependencies. Language-specific instructions on how to do this are below.
|
|
52
|
+
|
|
53
|
+
### Ruby
|
|
54
|
+
Use the `bundle` command to remove the AppMap library from your project:
|
|
55
|
+
|
|
56
|
+
{: .example-code}
|
|
57
|
+
|
|
58
|
+
```console
|
|
59
|
+
$ bundle remove appmap
|
|
60
|
+
```
|
|
61
|
+
Alternatively, manually remove the line containing `appmap` from the top of your Gemfile.
|
|
62
|
+
|
|
63
|
+
### Java
|
|
64
|
+
For IntelliJ users, the act of uninstalling the AppMap plugin from the IDE is enough to fully remove AppMap configuration from your project.
|
|
65
|
+
|
|
66
|
+
VS Code users should remove the AppMap launch commands from the files `launch.json` and `settings.json`, both located in the `.vscode` folder.
|
|
67
|
+
|
|
68
|
+
If you had also installed the [AppMap Maven plugin](https://appmap.io/docs/reference/appmap-maven-plugin.html), you should remove the appropriate AppMap `<plugin>` definition from your `pom.xml`. Similarly, if you had installed the [AppMap Gradle plugin](https://appmap.io/docs/reference/appmap-gradle-plugin.html#installation), you should remove the AppMap `plugins` section from your `build.gradle` or `build.gradle.kts` file.
|
|
69
|
+
|
|
70
|
+
### Python
|
|
71
|
+
Remove AppMap using your Python dependency manager:
|
|
72
|
+
|
|
73
|
+
{: .example-code}
|
|
74
|
+
|
|
75
|
+
```console
|
|
76
|
+
Using pip:
|
|
77
|
+
$ pip uninstall appmap
|
|
78
|
+
|
|
79
|
+
Using poetry:
|
|
80
|
+
$ poetry remove appmap
|
|
81
|
+
|
|
82
|
+
Using pipenv:
|
|
83
|
+
$ pipenv uninstall appmap
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Also, if your project contains a `requirements.txt` file, you should remove `appmap` from that file too.
|
|
87
|
+
|
|
88
|
+
### Node.js
|
|
89
|
+
Your Node project dependencies were not modified to use AppMap. Simply changing your application's launch command
|
|
90
|
+
to no longer prepend `npx appmap-node` is enough to stop using AppMap.
|
|
91
|
+
|
|
92
|
+
## Removing AppMap-generated files from your project
|
|
93
|
+
If you had generated AppMaps, you will have a number of files in your project folder that can safely be removed after completing the uninstall steps above. This is an optional step.
|
|
94
|
+
|
|
95
|
+
Start by removing the AppMap configuration file:
|
|
96
|
+
|
|
97
|
+
{: .example-code}
|
|
98
|
+
|
|
99
|
+
```console
|
|
100
|
+
$ rm appmap.yml
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Finally, remove any generated AppMap files from your project:
|
|
104
|
+
|
|
105
|
+
{: .example-code}
|
|
106
|
+
|
|
107
|
+
```console
|
|
108
|
+
$ rm -r tmp/appmap
|
|
109
|
+
```
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: docs
|
|
3
|
+
title: Docs - Reference
|
|
4
|
+
toc: true
|
|
5
|
+
reference: true
|
|
6
|
+
name: AppMap for Visual Studio Code
|
|
7
|
+
step: 1
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# AppMap for Visual Studio Code
|
|
11
|
+
|
|
12
|
+
- [AppMap panel](#appmap-panel)
|
|
13
|
+
- [Instructions](#instructions)
|
|
14
|
+
- [AppMaps tree view](#appmaps-tree-view)
|
|
15
|
+
- [Runtime Analysis](#runtime-analysis)
|
|
16
|
+
- [Code Objects](#code-objects)
|
|
17
|
+
- ["Run with AppMap" for Java](#run-with-appmap-for-java)
|
|
18
|
+
- [Extension actions](#extension-actions)
|
|
19
|
+
- [Remote recording](#remote-recording)
|
|
20
|
+
- [Generate OpenAPI Definitions](#generate-openapi-definitions)
|
|
21
|
+
- [GitHub repository](#github-repository)
|
|
22
|
+
|
|
23
|
+
## AppMap panel
|
|
24
|
+
|
|
25
|
+
### Instructions
|
|
26
|
+
|
|
27
|
+
Step-by-step instructions for configuring a project to use AppMap and using the main features.
|
|
28
|
+
|
|
29
|
+
Once you've configured AppMap for a project, commit the file changes to Git so that your colleagues don't have to do the setup themselves.
|
|
30
|
+
|
|
31
|
+
### AppMaps tree view
|
|
32
|
+
|
|
33
|
+
The AppMap view shows all AppMaps in your open projects. You can open it from the top level menu (View -> Open view... -> AppMap), with an AppMap action or by clicking on its icon in the side bar.
|
|
34
|
+
|
|
35
|
+
AppMaps are organized by how they were created (request recording, remote recording, test case recording).
|
|
36
|
+
|
|
37
|
+
Within the AppMap tree view you can
|
|
38
|
+
|
|
39
|
+
* Click on any AppMap name to open the diagram
|
|
40
|
+
* Right-click for a context menu
|
|
41
|
+
|
|
42
|
+
You can also use the tree view buttons to Filter the AppMap tree by name, or search for a specific AppMap. There are also extension commands to do this.
|
|
43
|
+
|
|
44
|
+
### Runtime Analysis
|
|
45
|
+
|
|
46
|
+
AppMap can find automatically find software design flaws that impact security, performance, stability, and maintainability. When a problem is found, it's listed here. Click on the problem to get detailed information about it.
|
|
47
|
+
|
|
48
|
+
### Code Objects
|
|
49
|
+
|
|
50
|
+
All the HTTP server requests, SQL queries, packages, classes, and functions that are present in an AppMap are listed here in a tree view. You can navigate through these code objects to see what's present in your project. Click on any code object to open the AppMaps that contain it.
|
|
51
|
+
|
|
52
|
+
## "Run with AppMap" for Java
|
|
53
|
+
|
|
54
|
+
**NOTE:** This section only applies to Java applications.
|
|
55
|
+
|
|
56
|
+
Installing the AppMap VC Code plugin adds a default [Launch Configuration](https://code.visualstudio.com/docs/editor/debugging) which supports the integrated VS Code debugger. These can be used to run your Java application code with AppMap automatically configured, saving you from manually changing your Maven or Gradle settings. This is the recommended approach for all Java users using the VS Code editor.
|
|
57
|
+
|
|
58
|
+
To run your tests with AppMap enabled, navigate to the `Testing` section of VS Code in the left hand menu icons. If your project has tests you will see them listed in the following screen. From here, click on the `Run Tests` icon, highlighted in the screenshot below. This will kick off your test cases with the AppMap libraries installed and enabled.
|
|
59
|
+
|
|
60
|
+
<img class="video-screenshot" src="/assets/img/vscode-run-with-tests.webp"/>
|
|
61
|
+
|
|
62
|
+
To run your applicaiton with AppMap enabled, navigate to the `Run and Debug` section of VS Code in the left hand menu icons. You will see a new launch configuration in the in the drop down which says `Run with AppMap` alongside any other launch configurations for your project. With the `Run with AppMap` launch configuration select click on the "Play" icon, highlighted in the screenshot below. This will start your applicaiton with the AppMap libraries installed and enabled. You can now interact with your application to generate [request recordings](/docs/reference/appmap-java.html#requests-recording) or use [remote recording](#remote-recording).
|
|
63
|
+
|
|
64
|
+
<img class="video-screenshot" src="/assets/img/vscode-run-with-appmap.webp"/>
|
|
65
|
+
|
|
66
|
+
### Video Demo
|
|
67
|
+
|
|
68
|
+
{% include vimeo.html id='916087851' %}
|
|
69
|
+
|
|
70
|
+
After installing the VS Code AppMap extension for your Java project, you will notice a new launch configuration in the `.vscode` directory in your project.
|
|
71
|
+
|
|
72
|
+
<img class="video-screenshot" src="/assets/img/docs/vscode-launch-configuration.webp"/>
|
|
73
|
+
|
|
74
|
+
Next, click on the "Run and Debug" menu option in the left hand column of VS Code
|
|
75
|
+
|
|
76
|
+
<img class="video-screenshot" src="/assets/img/docs/vscode-run-and-debug.png"/>
|
|
77
|
+
|
|
78
|
+
Clicking on the "Play" button next to the "Run with AppMap" launch configuration will start your Java application with the necessary AppMap configuration flags enabled by default.
|
|
79
|
+
|
|
80
|
+
When your application is running you can proceed to record AppMaps using either [Requests Recording](/docs/reference/appmap-java#requests-recording) or [Remote Recording](https://appmap.io/docs/reference/vscode.html#remote-recording)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
## Extension actions
|
|
84
|
+
|
|
85
|
+
To open the list of AppMap extension actions, press `CTRL+SHIFT+P` or `COMMAND+SHIFT+P` on macOS and type `AppMap`.
|
|
86
|
+
|
|
87
|
+
Most of the command names should be self-explanatory. Here are a few commands which are a bit more complicated:
|
|
88
|
+
|
|
89
|
+
- **AppMap: Filter/Find AppMap by name** Opens the AppMap side bar view and the filter/find text field
|
|
90
|
+
- **AppMap: Login**, **AppMap: Logout** Some extension functionality requires you to login to the AppMap Server. You'll be prompted to do this when you setup AppMap for the first time. You can also login and logout using the built-in `Accounts` feature of VSCode.
|
|
91
|
+
- **AppMap: Touch Out-of-Date Test Files** If you have AppMaps that are generated from test cases, this command will determine which tests need to be re-run in order to bring the AppMaps up-to-date. It will then "touch" (update the modified date) of each out-of-date test case. You can use a file watching trigger program like `Guard` (Ruby), `grunt` or `gulp` (JS) to re-run the test cases as they are touched.
|
|
92
|
+
- **AppMap: Copy Out-of-Date Tests to Clipboard** Similar to the "Touch Out-of-Date Test Files" command, but places the file names on the clipboard
|
|
93
|
+
- **AppMap: Open Code Object in AppMap** Using this command you can find and open AppMaps for any code object (package, class, function, route, etc) in your project.
|
|
94
|
+
|
|
95
|
+
## Remote recording
|
|
96
|
+
|
|
97
|
+
You can make a [remote recording](../recording-methods#remote-recording) from within the VSCode IDE. First, start your application with remote recording enabled. Exactly how to do this depends the language you're using - consult the [agent reference](/docs/reference) for details.
|
|
98
|
+
|
|
99
|
+
To start a recording, click the remote recording button, or use the command **AppMap: Start a Remote Recording**.
|
|
100
|
+
|
|
101
|
+

|
|
102
|
+
|
|
103
|
+
Interact with your app through its UI or API. Then use the stop remote recording button again, or use the command **AppMap: Stop the Remote Recording**.
|
|
104
|
+
|
|
105
|
+

|
|
106
|
+
|
|
107
|
+
You'll be prompted to save the AppMap to a file, and it will be opened.
|
|
108
|
+
|
|
109
|
+

|
|
110
|
+
|
|
111
|
+
For more details about remote recording, see:
|
|
112
|
+
|
|
113
|
+
* [Recording methods > Remote recording](../recording-methods#remote-recording)
|
|
114
|
+
* [Remote recording API](../reference/remote-recording-api)
|
|
115
|
+
|
|
116
|
+
## Generate OpenAPI Definitions
|
|
117
|
+
|
|
118
|
+
After [recording AppMaps](/docs/recording-methods.html) for your project, open the command pallette using `CTRL+SHIFT+P` or `COMMAND+SHIFT+P` on macOS, type `AppMap: Generate OpenAPI`, then hit `Enter`. This will open a new file with your OpenAPI definition document. Save this file locally, share with your team, or ingest as a [new collection into API tools like Postman.](https://blog.postman.com/new-postman-integration-with-appmap-create-and-manage-always-accurate-collections/)
|
|
119
|
+
|
|
120
|
+

|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
## GitHub repository
|
|
124
|
+
|
|
125
|
+
[https://github.com/getappmap/vscode-appland](https://github.com/getappmap/vscode-appland)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: docs
|
|
3
|
+
title: Set up AppMap in CI
|
|
4
|
+
name: Example Projects
|
|
5
|
+
setup-appmap-ci: true
|
|
6
|
+
step: 4
|
|
7
|
+
redirect_from: [/docs/setup-appmap-in-ci/in-github-actions.html#workflow-examples]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Workflow examples
|
|
11
|
+
|
|
12
|
+
Reference implementations of the AppMap GitHub Action are available for the following languages and frameworks:
|
|
13
|
+
|
|
14
|
+
* [**Ruby on Rails**](https://github.com/land-of-apps/sample_rails_app/blob/appmap/.github/workflows/appmap-analysis.yml)
|
|
15
|
+
* [**Ruby on Rails w/ Matrix Build**](https://github.com/land-of-apps/sample_rails_matrix_build/blob/appmap/.github/workflows/appmap-analysis.yml)
|
|
16
|
+
* [**Java Spring**](https://github.com/land-of-apps/sample_spring_app/blob/appmap/.github/workflows/appmap-analysis.yml)
|
|
17
|
+
* [**Java Spring w/ multiple sub-projects**](https://github.com/land-of-apps/waltz/blob/appmap-analysis/.github/workflows/appmap-analysis.yml)
|
|
18
|
+
* [**Python Django**](https://github.com/land-of-apps/django-oscar/blob/appmap/.github/workflows/appmap-analysis.yml)
|
|
19
|
+
* [**Python w/ Matrix Build**](https://github.com/land-of-apps/sample_django_app/blob/appmap/.github/workflows/appmap-analysis.yml)
|
|
20
|
+
* **Node.js** Coming soon!
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: docs
|
|
3
|
+
setup-appmap-ci: true
|
|
4
|
+
title: Set up AppMap in CI
|
|
5
|
+
step: 1
|
|
6
|
+
name: How it works
|
|
7
|
+
redirect_from: [/docs/analysis/in-ci]
|
|
8
|
+
---
|
|
9
|
+
# Set Up AppMap in CI
|
|
10
|
+
|
|
11
|
+
AppMap Analysis can work with your Continuous Integration (CI) system to collect, store, analyze, and report on the behavioral changes within each Pull Request.
|
|
12
|
+
AppMap will analyze the changes in your application on each pushed commit or pull request. AppMap performs a thorough analysis of the runtime differences, giving you:
|
|
13
|
+
|
|
14
|
+
* Root cause analysis of failed tests.
|
|
15
|
+
* Web service API changes - breaking and non-breaking - via comparison of generated OpenAPI definitions.
|
|
16
|
+
* New and resolved security findings.
|
|
17
|
+
* New and resolved performance findings.
|
|
18
|
+
* New and resolved findings in other categories - maintainability, reliability, and user-defined rules.
|
|
19
|
+
* “Behavioral diffs” as sequence diagrams showing changed runtime behavior within the PR.
|
|
20
|
+
|
|
21
|
+
<p class="alert alert-info">
|
|
22
|
+
Install the <a href="https://github.com/marketplace/get-appmap" target="_blank">AppMap GitHub App</a> on the GitHub Marketplace to get started now!
|
|
23
|
+
</p>
|
|
24
|
+
|
|
25
|
+
The AppMap Analysis GitHub actions can run cooperatively or independently of your existing CI job.
|
|
26
|
+
For example, AppMap Analysis can run as a GitHub Action even if you do not use GitHub Actions as your CI system.
|
|
27
|
+
|
|
28
|
+
AppMap Analysis runs entirely within your existing GitHub account and does not send code or data to an external or 3rd-party server. For more information, refer to the [AppMap Security FAQ](https://appmap.io/security).
|
|
29
|
+
|
|
30
|
+
Once you create a pull request, AppMap data is recorded as your test cases run. As AppMaps are generated, an AppMap archive file is created that includes all the AppMap data, plus some metadata about the job. As code is pushed to a branch, AppMap Analysis create an archive file for that code revision. This archive file is automatically saved as a CI artifact. Once an archive has been created, it can be compared to the “base” revision (i.e. your mainline or production branch).
|
|
31
|
+
1
|
|
32
|
+
## The value of AppMap in CI
|
|
33
|
+
|
|
34
|
+
We designed AppMap’s findings as a comment in the PR itself to enable the Development, QA, Architecture, and Security teams to review code faster, evaluate code independently, and catch deep-rooted code issues easier. This helps you determine the stability of new code in the context of where the code actually lives and allows for faster and more reliable code delivery.
|
|
35
|
+
|
|
36
|
+
By simply browsing the PR comments, a DevOps team can reliably deploy code with the assurance that it meets all needed code quality requirements, reducing the amount of unnecessary communication between teams just to get the code live long before it is ever pushed to production.
|
|
37
|
+
|
|
38
|
+
## Requirements
|
|
39
|
+
If you have already generated AppMaps outside of CI (for example, by running your test cases locally), you can quickly deploy AppMap in CI using the same commands used to execute your test cases. If you already have an existing CI job that builds an environment to execute your test cases, AppMap Analysis can be added to that job.
|
|
40
|
+
|
|
41
|
+
## Next steps
|
|
42
|
+
- [Add to GitHub Actions](/docs/analysis/in-github-actions)
|