inspektor-gadget

Форк
0
75 строк · 2.0 Кб
1
// Copyright 2022-2023 The Inspektor Gadget authors
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//     http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14

15
package tracer
16

17
import (
18
	gadgetregistry "github.com/inspektor-gadget/inspektor-gadget/pkg/gadget-registry"
19
	"github.com/inspektor-gadget/inspektor-gadget/pkg/gadgets"
20
	"github.com/inspektor-gadget/inspektor-gadget/pkg/gadgets/trace/open/types"
21
	"github.com/inspektor-gadget/inspektor-gadget/pkg/params"
22
	"github.com/inspektor-gadget/inspektor-gadget/pkg/parser"
23
)
24

25
const (
26
	ParamFullPath = "full-path"
27
	ParamPrefixes = "prefixes"
28
)
29

30
type GadgetDesc struct{}
31

32
func (g *GadgetDesc) Name() string {
33
	return "open"
34
}
35

36
func (g *GadgetDesc) Category() string {
37
	return gadgets.CategoryTrace
38
}
39

40
func (g *GadgetDesc) Type() gadgets.GadgetType {
41
	return gadgets.TypeTrace
42
}
43

44
func (g *GadgetDesc) Description() string {
45
	return "Trace open system calls"
46
}
47

48
func (g *GadgetDesc) ParamDescs() params.ParamDescs {
49
	return params.ParamDescs{
50
		{
51
			Key:          ParamFullPath,
52
			Title:        "Absolute full path",
53
			Description:  "Show the absolute full path of the opened file",
54
			DefaultValue: "false",
55
			TypeHint:     params.TypeBool,
56
		},
57
		{
58
			Key:          ParamPrefixes,
59
			Description:  "Filter out by path prefixes. Join multiple prefixes with ','",
60
			DefaultValue: "",
61
		},
62
	}
63
}
64

65
func (g *GadgetDesc) Parser() parser.Parser {
66
	return parser.NewParser[types.Event](types.GetColumns())
67
}
68

69
func (g *GadgetDesc) EventPrototype() any {
70
	return &types.Event{}
71
}
72

73
func init() {
74
	gadgetregistry.Register(&GadgetDesc{})
75
}
76

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.