inspektor-gadget

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

25
type GadgetDesc struct{}
26

27
func (g *GadgetDesc) Name() string {
28
	return "tcp"
29
}
30

31
func (g *GadgetDesc) Category() string {
32
	return gadgets.CategoryTop
33
}
34

35
func (g *GadgetDesc) Type() gadgets.GadgetType {
36
	return gadgets.TypeTraceIntervals
37
}
38

39
func (g *GadgetDesc) Description() string {
40
	return "Periodically report TCP activity"
41
}
42

43
func (g *GadgetDesc) ParamDescs() params.ParamDescs {
44
	return params.ParamDescs{
45
		{
46
			Key:          types.PidParam,
47
			Title:        "PID",
48
			Description:  "Show only TCP events generated by this particular PID (-1 for all)",
49
			DefaultValue: "0",
50
			TypeHint:     params.TypeInt32,
51
		},
52
		{
53
			Key:            types.FamilyParam,
54
			Alias:          "f",
55
			DefaultValue:   "all",
56
			Description:    "Show only TCP events for this IP version: either 4 or 6 (by default all will be printed)",
57
			PossibleValues: []string{"all", "4", "6"},
58
		},
59
	}
60
}
61

62
func (g *GadgetDesc) Parser() parser.Parser {
63
	return parser.NewParser[types.Stats](types.GetColumns())
64
}
65

66
func (g *GadgetDesc) EventPrototype() any {
67
	return &types.Stats{}
68
}
69

70
func (g *GadgetDesc) SortByDefault() []string {
71
	return types.SortByDefault
72
}
73

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

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

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

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

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