Skip to content

Commit e692711

Browse files
committed
feat: hack at using syft and github api to generate .pyroscope.yaml
1 parent 361594a commit e692711

File tree

5 files changed

+1562
-35
lines changed

5 files changed

+1562
-35
lines changed
Lines changed: 138 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,140 @@
11
source_code:
22
mappings:
3-
- function_name:
4-
- prefix: org/example/rideshare
5-
language: java
6-
source:
7-
local:
8-
path: src/main/java
9-
- function_name:
10-
- prefix: java
11-
language: java
12-
source:
13-
github:
14-
owner: openjdk
15-
repo: jdk
16-
ref: jdk-17+0
17-
path: src/java.base/share/classes
18-
- function_name:
19-
- prefix: org/springframework/http
20-
- prefix: org/springframework/web
21-
language: java
22-
source:
23-
github:
24-
owner: spring-projects
25-
repo: spring-framework
26-
ref: v5.3.20
27-
path: spring-web/src/main/java
28-
- function_name:
29-
- prefix: org/springframework/web/servlet
30-
language: java
31-
source:
32-
github:
33-
owner: spring-projects
34-
repo: spring-framework
35-
ref: v5.3.20
36-
path: spring-webmvc/src/main/java
3+
- function_name:
4+
- prefix: org/example/rideshare
5+
language: java
6+
source:
7+
local:
8+
path: src/main/java
9+
- function_name:
10+
- prefix: agent
11+
language: java
12+
source:
13+
github:
14+
owner: microsoft
15+
repo: ai-agents-for-beginners
16+
ref: 2.1.2
17+
path: src/main/java
18+
- function_name:
19+
- prefix: org/jetbrains
20+
language: java
21+
source:
22+
github:
23+
owner: doctrine
24+
repo: annotations
25+
ref: '13.0'
26+
path: src/main/java
27+
- function_name:
28+
- prefix: annotations
29+
language: java
30+
source:
31+
github:
32+
owner: doctrine
33+
repo: annotations
34+
ref: 26.0.2
35+
path: src/main/java
36+
- function_name:
37+
- prefix: com/fasterxml/jackson/annotation
38+
- prefix: javax/xml/datatype
39+
- prefix: javax/xml/namespace
40+
- prefix: javax/xml/parsers
41+
- prefix: javax/xml/transform
42+
- prefix: org/w3c/dom
43+
- prefix: org/xml/sax
44+
language: java
45+
source:
46+
github:
47+
owner: FasterXML
48+
repo: jackson
49+
ref: 2.13.3
50+
path: src/main/java
51+
- function_name:
52+
- prefix: com/fasterxml/jackson/core
53+
language: java
54+
source:
55+
github:
56+
owner: FasterXML
57+
repo: jackson-core
58+
ref: 2.13.3
59+
path: src/main/java
60+
- function_name:
61+
- prefix: org/apache/logging/log4j
62+
- prefix: org/osgi/framework
63+
- prefix: org/slf4j/spi
64+
- prefix: sun/reflect
65+
language: java
66+
source:
67+
github:
68+
owner: log4js-node
69+
repo: log4js-node
70+
ref: 2.17.2
71+
path: src/main/java
72+
- function_name:
73+
- prefix: org/yaml/snakeyaml
74+
language: java
75+
source:
76+
github:
77+
owner: snakeyaml
78+
repo: snakeyaml
79+
ref: '1.30'
80+
path: src/main/java
81+
- function_name:
82+
- prefix: org/springframework
83+
language: java
84+
source:
85+
github:
86+
owner: spring-projects
87+
repo: spring-framework
88+
ref: 5.3.20
89+
path: spring-aop/src/main/java
90+
- function_name:
91+
- prefix: org/springframework/boot
92+
language: java
93+
source:
94+
github:
95+
owner: spring-projects
96+
repo: spring-boot
97+
ref: 2.7.0
98+
path: spring-boot-project/spring-boot/src/main/java
99+
- function_name:
100+
- prefix: javax/annotation/security
101+
- prefix: javax/crypto/spec
102+
- prefix: javax/ejb
103+
- prefix: javax/el
104+
- prefix: javax/imageio
105+
- prefix: javax/mail/internet
106+
- prefix: javax/management/loading
107+
- prefix: javax/management/modelmbean
108+
- prefix: javax/management/openmbean
109+
- prefix: javax/naming/directory
110+
- prefix: javax/naming/ldap
111+
- prefix: javax/naming/spi
112+
- prefix: javax/net/ssl
113+
- prefix: javax/persistence
114+
- prefix: javax/security/auth
115+
- prefix: javax/security/cert
116+
- prefix: javax/servlet/annotation
117+
- prefix: javax/servlet/descriptor
118+
- prefix: javax/servlet/http
119+
- prefix: javax/servlet/resources
120+
- prefix: javax/sql
121+
- prefix: javax/websocket/server
122+
- prefix: javax/wsdl/extensions
123+
- prefix: javax/wsdl/factory
124+
- prefix: javax/wsdl/xml
125+
- prefix: javax/xml/rpc
126+
- prefix: javax/xml/ws
127+
- prefix: org/apache/catalina
128+
- prefix: org/apache/coyote/http11/upgrade
129+
- prefix: org/apache/el
130+
- prefix: org/apache/juli/logging
131+
- prefix: org/apache/naming
132+
- prefix: org/apache/tomcat
133+
- prefix: org/ietf/jgss
134+
language: java
135+
source:
136+
github:
137+
owner: apache
138+
repo: tomcat
139+
ref: 9.0.63
140+
path: java

pkg/frontend/vcs/source/find.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"fmt"
77
"io"
88
"net/http"
9+
"os"
910
"path/filepath"
1011

1112
"connectrpc.com/connect"
@@ -117,7 +118,14 @@ func (ff *FileFinder) loadConfig(ctx context.Context) {
117118
sp.SetTag("config.url", file.URL)
118119
sp.SetTag("config", file.Content)
119120

120-
cfg, err := config.ParsePyroscopeConfig([]byte(file.Content))
121+
// TODO load local file
122+
data, err := os.ReadFile(configPath)
123+
if err != nil {
124+
level.Error(ff.logger).Log("failed to read file: %v", err)
125+
return
126+
}
127+
//cfg, err := config.ParsePyroscopeConfig([]byte(file.Content))
128+
cfg, err := config.ParsePyroscopeConfig(data)
121129
if err != nil {
122130
level.Warn(ff.logger).Log("msg", "failed to parse .pyroscope.yaml", "err", err)
123131
return
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
{
2+
"org.springframework.boot": {
3+
"owner": "spring-projects",
4+
"repo": "spring-boot",
5+
"path_mappings": {
6+
"spring-boot": "spring-boot-project/spring-boot/src/main/java",
7+
"spring-boot-autoconfigure": "spring-boot-project/spring-boot-autoconfigure/src/main/java",
8+
"spring-boot-starter": "spring-boot-project/spring-boot-starters/spring-boot-starter/src/main/java",
9+
"spring-boot-starter-web": "spring-boot-project/spring-boot-starters/spring-boot-starter-web/src/main/java"
10+
},
11+
"default_path": "spring-boot-project/spring-boot/src/main/java"
12+
},
13+
"org.springframework": {
14+
"owner": "spring-projects",
15+
"repo": "spring-framework",
16+
"path_mappings": {
17+
"spring-web": "spring-web/src/main/java",
18+
"spring-webmvc": "spring-webmvc/src/main/java",
19+
"spring-webflux": "spring-webflux/src/main/java",
20+
"spring-core": "spring-core/src/main/java",
21+
"spring-beans": "spring-beans/src/main/java",
22+
"spring-context": "spring-context/src/main/java",
23+
"spring-aop": "spring-aop/src/main/java",
24+
"spring-expression": "spring-expression/src/main/java"
25+
},
26+
"default_path": "spring-framework/src/main/java"
27+
},
28+
"java": {
29+
"owner": "openjdk",
30+
"repo": "jdk",
31+
"path_mappings": {},
32+
"default_path": "src/java.base/share/classes"
33+
},
34+
"sun": {
35+
"owner": "openjdk",
36+
"repo": "jdk",
37+
"path_mappings": {},
38+
"default_path": "src/java.base/share/classes"
39+
},
40+
"javax": {
41+
"owner": "openjdk",
42+
"repo": "jdk",
43+
"path_mappings": {},
44+
"default_path": "src/java.base/share/classes"
45+
},
46+
"org.apache.tomcat": {
47+
"owner": "apache",
48+
"repo": "tomcat",
49+
"path_mappings": {},
50+
"default_path": "java"
51+
},
52+
"org.apache.tomcat.embed": {
53+
"owner": "apache",
54+
"repo": "tomcat",
55+
"path_mappings": {},
56+
"default_path": "java"
57+
}
58+
}
59+
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
pyyaml>=6.0
2+
requests>=2.28.0
3+

0 commit comments

Comments
 (0)