Code Monkey home page Code Monkey logo

digma-vscode-plugin's People

Contributors

arik-dig avatar asafc64 avatar asafchen-dig avatar doppleware avatar kshmidt-digma avatar noamkfir avatar shaykeren avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

sharik79

digma-vscode-plugin's Issues

Unify identifiers using instrumentation library name and span name

Overview

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.

Backend

Replace ServiceName + SpanName with InstrumentationLibrary + SpanName.

[x] Add InstrumentationLibrary to span measurement (as tag) in FinluxDB.
[x] Add InstrumentationLibrary to spans table in Postgres.

  • Modify both InfluxDB and Postgres to identify span by InstrumentationLibrary + SpanName instead of ServiceName + SpanName.

Plugin

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.

  • Detect Tracer's name for each span in Python file.

Dev notes:
endpoint identifier - The Id contains the module name

Show list of code objects when non selected

  1. If code object is selected but no data found about it (404), please show indication that there is no data yet about this function.
  2. If no code object is selected, append to the message 'no code object is selected' a list of the code objects in the class with data.
  3. If the document is not code or unsupported code, change view to show 'Select a document containing code to see its insights'

Change error steps order in frames visualization

this is the source:


raise ConnectionError(β€œblah”)
example-fastapi-app/external_service.py#validate_with_external_service

we want to change it to


example-fastapi-app/external_service.py in validate_with_external_service
raise ConnectionError(β€œblah”) [50]

Where [50] is the line number

support newer fastapi attributes

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),
):

Open remote version of frame if different from current version

When clicking on a specific frame to open a file, if any of the following is true:

  1. Text at line number is different from exception text at line number
  2. File does not exist
  3. Function does not exist in the file

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

Span / Activity Discovery - UI only

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

change code lens for errors

  1. Instead of 2 error flows:
    If error flows contain unhandled errors (high impact) show '[num] unhandled exceptions]
    if not show '[num] exceptions' [done]

  2. For trend, please take minimum value (worst trend) from all error flows [support trend in summary]

error details null frequency

STR
Go project - generate error , go to error details view and observe that freq show: null/day

see attached image

Image

Fix look and feel of top usage insight

We want to overhaul this insight look and feel:

  1. Show origin service and span and last service and span
  2. Change ... to arrow
  3. Use servicename:span to save space
  4. allow two lines if needed for spillover
  5. Show more service-span pairs if there is more space to show

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.

Non workspace files

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.

errors decorators unexpected behavior

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

Add Environment Filter to vsCode Plugin

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.

VS Code plugin repo refactoring

Code

  • Move inline stype tags to css
  • Align colors with vscode variables (@asafc64 has a list)
  • Add unit-tests

Repo

  • Add Readme file with usage details + screenshots
  • Protect main branch
  • Run tests on PR + depend merging PR on tests passing
  • Add publishing procedure to create a release with vsix + Uploading to vscode marketplace

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.