-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ci: Set up AppMap #33
Conversation
AppMap configuration reportSuccess! Your project has been successfully configured to record AppMaps when The following sections contain detailed information about the AppMap integration with your project.
|
Number of AppMaps | Type of recording |
---|---|
85 | minitest |
Code recording settings
Your appmap.yml configuration file specifies all the code that you want AppMap to instrument and record.
By default, sub-modules of any requested code are recorded as well. In this project, the packages specified
in appmap.yml are:
- path: app
- path: lib
By applying this configuration to your ruby project, AppMap has recorded the
following packages and modules:
app
app/helpers
app/models
Web service API profile
When you record AppMaps that include HTTP server requests, AppMap automatically generates OpenAPI definitions
based on the observed data.
69% of the AppMaps in this project contain at least one HTTP server request.
36% of the AppMaps in this project contain more than one HTTP server request.
Here's a summary of the web service routes that are provided by this project:
/
/about
/account_activations/{id}
/contact
/help
/login
/logout
/microposts
/microposts/{id}
/password_resets
/password_resets/new
/password_resets/{id}
/relationships
/relationships/{id}
/signup
/users
/users/{id}
And here are the different content types served by the API:
Response Content Type | Number of Routes |
---|---|
text/html | 39 |
text/vnd.turbo-stream.html | 2 |
As you change your code and tests, AppMap will automatically update the OpenAPI definitions.
You'll see a summary of the REST API changes in each pull request.
SQL profile
When your code makes a SQL query, AppMap records the SQL query in detail. It even parses the queries
to figure out which tables your app is using, and how it's using them.
78% of the AppMaps in this project contain at least one SQL query.
75% of the AppMaps in this project contain more than one SQL query.
Here are the SQL tables that are present in the observed queries:
active_storage_attachments
microposts
relationships
sqlite_master
sqlite_temp_master
users
Large AppMaps
Some tests can produce large AppMaps, because they exercise longer or highly repeated code paths.
AppMap runtime code review is optimized for AppMaps that
are less than 10 MB in size. You may want to consider disabling AppMap for tests that produce
large AppMaps, since they can slow down your CI job and they are hard to analyze. Also, note that
AppMaps greater than 50 MB in size will not be analyzed at all.
You can disable recording of a test case by adding a code comment or annotation to the test case file.
Learn how by visiting the
reference documentation for appmap-ruby
.
Here are the largest AppMaps that are greater than 1 MB:
Size | Location | Test name | AppMap path |
---|---|---|---|
1.62 MB | test/integration/microposts_interface_test.rb:9 | Microposts_interface micropost interface | tmp/appmap/minitest/Microposts_interface_micropost_interface.appmap.json |
1.25 MB | test/integration/users_login_test.rb:17 | Invalid_password login with valid email/invalid password | tmp/appmap/minitest/Invalid_password_login_with_valid_email_invalid_password.appmap.json |
1.13 MB | test/integration/users_login_test.rb:12 | Invalid_password login path | tmp/appmap/minitest/Invalid_password_login_path.appmap.json |
Frequently recorded functions
The AppMap configuration file appmap.yml specifies which functions to record.
Some functions may be called very frequently, adding little to the understandability of the code
while adding a lot of overhead to the AppMap recording process.
Note that some functions are automatically added to the recording by
the AppMap agent. For example, the AppMap agent automatically records functions that are
relevant to detecting security flaws and performance problems. If you disable recording of these
functions, then some problems may become undetectable.
You can disable recording of a class or function by updating the appmap.yml configuration file.
Learn how by visiting the
reference documentation for appmap-ruby
.
Here are some of the most frequently recorded functions in this project:
Number of occurrences | Function name | Source location |
---|---|---|
1232 | Logger::LogDevice#write | /opt/hostedtoolcache/Ruby/3.1.2/x64/lib/ruby/3.1.0/logger/log_device.rb:31 |
1149 | Array#pack | <internal:pack>:143 |
Learn more
To learn more about AppMap, visit
appmap.io/docs.
AppMap project summaryAppMap runtime code review scans the AppMaps for security flaws, performance Overview of problems and flawsAppMap detected 2 types of problems and flaws in the runtime code review of your project.
Recently introduced code flaws and problemsA sample of all the problems that were found in the AppMaps. Problems are listed in order of 🚨 Data update performed in GET or HEAD request at 4 days old View detailsDescription
Stack trace🚨 Data update performed in GET or HEAD request at 4 days old View detailsDescription
Stack trace🚨 Data update performed in GET or HEAD request at 4 days old View detailsDescription
Stack trace🐌 N plus 1 SQL query at 4 days old View detailsDescription
Stack trace
🐌 N plus 1 SQL query at 4 days old View detailsDescription
Stack trace
🐌 N plus 1 SQL query at 4 days old View detailsDescription
Stack trace
🐌 N plus 1 SQL query at 4 days old View detailsDescription
Stack trace
🐌 N plus 1 SQL query at 4 days old View detailsDescription
Stack trace
|
AppMap runtime code review
|
This pull request was created by the AppMap CI setup assistant.
To continue, return to https://getappmap.com/setup/github_auto/progress.
Steps to merge: