inspektor-gadget

Форк
0
86 строк · 2.3 Кб
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/bind/types"
21
	"github.com/inspektor-gadget/inspektor-gadget/pkg/params"
22
	"github.com/inspektor-gadget/inspektor-gadget/pkg/parser"
23
)
24

25
const (
26
	ParamPID          = "pid"
27
	ParamPorts        = "ports"
28
	ParamIgnoreErrors = "ignore-errors"
29
)
30

31
type GadgetDesc struct{}
32

33
func (g *GadgetDesc) Name() string {
34
	return "bind"
35
}
36

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

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

45
func (g *GadgetDesc) Description() string {
46
	return "Trace socket bindings"
47
}
48

49
func (g *GadgetDesc) ParamDescs() params.ParamDescs {
50
	return params.ParamDescs{
51
		{
52
			Key:          ParamPID,
53
			Title:        "PID",
54
			DefaultValue: "0",
55
			Description:  "Show only bind events generated by this particular PID",
56
			TypeHint:     params.TypeInt32,
57
		},
58
		{
59
			Key:          ParamPorts,
60
			Alias:        "P",
61
			DefaultValue: "",
62
			Description:  "Trace only bind events involving these ports",
63
			Validator:    params.ValidateSlice(params.ValidateUintRange(1, 65535)),
64
		},
65
		{
66
			Key:          ParamIgnoreErrors,
67
			Title:        "Ignore Errors",
68
			Alias:        "i",
69
			DefaultValue: "true",
70
			Description:  "Show only events where the bind succeeded",
71
			TypeHint:     params.TypeBool,
72
		},
73
	}
74
}
75

76
func (g *GadgetDesc) Parser() parser.Parser {
77
	return parser.NewParser[types.Event](types.GetColumns())
78
}
79

80
func (g *GadgetDesc) EventPrototype() any {
81
	return &types.Event{}
82
}
83

84
func init() {
85
	gadgetregistry.Register(&GadgetDesc{})
86
}
87

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

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

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

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