digma-ai / digma-vscode-plugin Goto Github PK
View Code? Open in Web Editor NEWπ§βπ» Visual Studio Code extension for Digma
Home Page: https://www.digma.ai/
License: MIT License
π§βπ» Visual Studio Code extension for Digma
Home Page: https://www.digma.ai/
License: MIT License
The backend currently constructs the identifier based on the service name and span name. The plugin constructs it using the file name and span name. The goal is to use the more accurate instrumentation library name and span name in both environments.
Replace ServiceName + SpanName with InstrumentationLibrary + SpanName.
[x] Add InstrumentationLibrary to span measurement (as tag) in FinluxDB.
[x] Add InstrumentationLibrary to spans table in Postgres.
Replace FileName + SpanName with InstrumentationLibrary + SpanName.
[x] Detect ActivitySource
's name for each Activity
in C# file.
-- Determine if possible to detect ActivitySource
by type and not just by method call to .StartActivity
.
Tracer
's name for each span in Python file.Dev notes:
endpoint identifier - The Id contains the module name
The Insights header font is too large, try reducing it by a notch
The widget should display the top 2 usages for this specific code.
The spans should be trimmed so that I see the origin and the leaf spans.
https://balsamiq.cloud/spcq19i/pk08vlr/r8625
https://app.excalidraw.com/s/3Ea6EceGZ9R/AcNTaLVMXPU
Discover that the highlighted code is an endpoint and display its path
Show basic insights:
mockup:
https://balsamiq.cloud/spcq19i/pk08vlr/r8625
see endpoint high traffic widget under insights tab, take top X
when no code object is selected, we should show only the code objects with data in the panel
this is the source:
we want to change it to
Where [50] is the line number
Ensure it looks well on non dark theme and use built in variables and css
See the below example:
router = APIRouter(prefix="/v1/nonsense")
@router.post("/", status_code=status.HTTP_201_CREATED, response_model=NonsenseResponse)
async def create_nonsense(payload: NonsenseSchema, db_session: AsyncSession = Depends(get_db)):
nonsense = Nonsense(**payload.dict())
await nonsense.save(db_session)
return nonsense
@router.get("/", response_model=NonsenseResponse)
async def find_nonsense(
name: str,
db_session: AsyncSession = Depends(get_db),
):
When clicking on a specific frame to open a file, if any of the following is true:
Suggest to the user:
'File version is different from the version recorded in this flow, would you like to open the remote version of the file"
If yes, do the following: Open the file in this specific commit
Full design found here
Based on the selected error flow, the plugin should query statistics and display in tooltip above the parameter.
If one of the following exists, consider if we can highlight the parameter or color it:
Ability to click on an error frame in the UI to open the corresponding file/code line in vscode
Emphasize the most important information and move the other numbers into a tooltip
The plugin should be able to discover whether a Span or Activity is created within a function.
If so, it should identify that as a 'scope' within the insights UI and send the Id to the backend server
Instead of 2 error flows:
If error flows contain unhandled errors (high impact) show '[num] unhandled exceptions]
if not show '[num] exceptions' [done]
For trend, please take minimum value (worst trend) from all error flows [support trend in summary]
For now, don't include 'Resolve' in the implementation.
Need to be able to see the different stack traces (today we show only one since its not yet grouped)
We want to overhaul this insight look and feel:
Lets try to prototype this and find something that looks better...
Make sure we have all of the span information in the client and not just what is currently shown.
Add checkbox 'Workspace Only' default True that hides all of the frames pointing at files that are not in the workspace.
When disabled (showing non workspace frames) these frames should not have links.
STR - Managed to reproduce on Rider
Behavior is different, getting 'no insights to show!' after renaming span.
Reproduced on NET but check for other languages error decorator appears only when user change the document
These are the Error/Exception type names that should appear next to the code where they were thrown
Could be a limitation of .net and golang because we don't have information on the executed code
See mockup in notion
Error flows sort options:
should validate that the python language server is set to pylance on vscode plugin startup, otherewise no tokens will be returned and the codeobject discovery will be partial.
** add this limitation to the vscode plugin documentation for python**
Expected behavior: Show any function with insights or error data
Add a panel where user can select the environment.
The environment should be one of three (static list for now drowdown): Machinename, Testing, Staging, Production
This environment should be passed along to any request to the server so that the data could be filtered accordingly.
Code
stype
tags to cssRepo
main
branchVelocity is automatically populating span names with fully qualified method names.
We want to be able to allow the client to backwards engineer the name of the span from the function (either using the vscode settings, or by adding a resource attribute in the instrumentation)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.