Documentation
¶
Index ¶
- type Db2QueryLogSchema
- type Db2Scrapper
- func (e *Db2Scrapper) Capabilities() scrapper.Capabilities
- func (e *Db2Scrapper) Close() error
- func (e *Db2Scrapper) DialectType() string
- func (e *Db2Scrapper) EstimateQuery(ctx context.Context, sql string) (*scrapper.QueryEstimate, error)
- func (e *Db2Scrapper) Executor() *dwhexecdb2.Db2Executor
- func (e *Db2Scrapper) FetchQueryLogs(ctx context.Context, from, to time.Time, obfuscator querylogs.QueryObfuscator) (querylogs.QueryLogIterator, error)
- func (e *Db2Scrapper) IsPermissionError(err error) bool
- func (e *Db2Scrapper) QueryCatalog(ctx context.Context) ([]*scrapper.CatalogColumnRow, error)
- func (e *Db2Scrapper) QueryCustomMetrics(ctx context.Context, sql string, args ...any) ([]*scrapper.CustomMetricsRow, error)
- func (e *Db2Scrapper) QueryDatabases(ctx context.Context) ([]*scrapper.DatabaseRow, error)
- func (e *Db2Scrapper) QueryPlatformUsers(ctx context.Context) (*scrapper.PlatformUsers, error)
- func (e *Db2Scrapper) QuerySchemas(ctx context.Context) ([]*scrapper.SchemaRow, error)
- func (e *Db2Scrapper) QuerySegments(ctx context.Context, sql string, args ...any) ([]*scrapper.SegmentRow, error)
- func (e *Db2Scrapper) QueryShape(ctx context.Context, sql string) ([]*scrapper.QueryShapeColumn, error)
- func (e *Db2Scrapper) QuerySqlDefinitions(ctx context.Context) ([]*scrapper.SqlDefinitionRow, error)
- func (e *Db2Scrapper) QueryTableConstraints(ctx context.Context) ([]*scrapper.TableConstraintRow, error)
- func (e *Db2Scrapper) QueryTableMetrics(ctx context.Context, lastMetricsFetchTime time.Time) ([]*scrapper.TableMetricsRow, error)
- func (e *Db2Scrapper) QueryTables(ctx context.Context, opts ...scrapper.QueryTablesOption) ([]*scrapper.TableRow, error)
- func (e *Db2Scrapper) RunRawQuery(ctx context.Context, sql string) (scrapper.RawQueryRowIterator, error)
- func (e *Db2Scrapper) SqlDialect() sqldialect.Dialect
- func (e *Db2Scrapper) ValidateConfiguration(ctx context.Context) ([]string, error)
- type Db2ScrapperConf
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Db2QueryLogSchema ¶
type Db2QueryLogSchema struct {
ExecutableId string `db:"EXECUTABLE_ID"`
StmtId *int64 `db:"STMTID"`
PlanId *int64 `db:"PLANID"`
Member *int64 `db:"MEMBER"`
SectionType *string `db:"SECTION_TYPE"`
PackageSchema *string `db:"PACKAGE_SCHEMA"`
PackageName *string `db:"PACKAGE_NAME"`
StmtTypeId *string `db:"STMT_TYPE_ID"`
InsertTimestamp *time.Time `db:"INSERT_TIMESTAMP"`
LastMetricsUpdate *time.Time `db:"LAST_METRICS_UPDATE"`
NumExecutions *int64 `db:"NUM_EXECUTIONS"`
NumExecWithMetrics *int64 `db:"NUM_EXEC_WITH_METRICS"`
TotalActTime *int64 `db:"TOTAL_ACT_TIME"`
TotalActWaitTime *int64 `db:"TOTAL_ACT_WAIT_TIME"`
TotalCpuTime *int64 `db:"TOTAL_CPU_TIME"`
RowsRead *int64 `db:"ROWS_READ"`
RowsReturned *int64 `db:"ROWS_RETURNED"`
RowsModified *int64 `db:"ROWS_MODIFIED"`
TotalSorts *int64 `db:"TOTAL_SORTS"`
LogicalReads *int64 `db:"LOGICAL_READS"`
PhysicalReads *int64 `db:"PHYSICAL_READS"`
QueryCostEstimate *int64 `db:"QUERY_COST_ESTIMATE"`
DatabaseName string `db:"DATABASE_NAME"`
StmtText *string `db:"STMT_TEXT"`
}
Db2QueryLogSchema maps a row of MON_GET_PKG_CACHE_STMT (query_logs.sql).
type Db2Scrapper ¶
type Db2Scrapper struct {
// contains filtered or unexported fields
}
func NewDb2Scrapper ¶
func NewDb2Scrapper(ctx context.Context, conf *Db2ScrapperConf) (*Db2Scrapper, error)
func (*Db2Scrapper) Capabilities ¶
func (e *Db2Scrapper) Capabilities() scrapper.Capabilities
func (*Db2Scrapper) Close ¶
func (e *Db2Scrapper) Close() error
func (*Db2Scrapper) DialectType ¶
func (e *Db2Scrapper) DialectType() string
func (*Db2Scrapper) EstimateQuery ¶
func (e *Db2Scrapper) EstimateQuery(ctx context.Context, sql string) (*scrapper.QueryEstimate, error)
EstimateQuery is unsupported: Db2's EXPLAIN writes into explain tables the user has to create first, and reads back from them.
func (*Db2Scrapper) Executor ¶
func (e *Db2Scrapper) Executor() *dwhexecdb2.Db2Executor
func (*Db2Scrapper) FetchQueryLogs ¶
func (e *Db2Scrapper) FetchQueryLogs( ctx context.Context, from, to time.Time, obfuscator querylogs.QueryObfuscator, ) (querylogs.QueryLogIterator, error)
FetchQueryLogs reads the package cache (MON_GET_PKG_CACHE_STMT): one entry per cached statement, with metrics accumulated over its executions, for the statements whose metrics were last updated in [from, to). Like Oracle's V$SQL, it holds no per-execution history and no executing user, and a statement ages out under memory pressure. Needs EXECUTE on MON_GET_PKG_CACHE_STMT.
func (*Db2Scrapper) IsPermissionError ¶
func (e *Db2Scrapper) IsPermissionError(err error) bool
func (*Db2Scrapper) QueryCatalog ¶
func (e *Db2Scrapper) QueryCatalog(ctx context.Context) ([]*scrapper.CatalogColumnRow, error)
func (*Db2Scrapper) QueryCustomMetrics ¶
func (e *Db2Scrapper) QueryCustomMetrics(ctx context.Context, sql string, args ...any) ([]*scrapper.CustomMetricsRow, error)
func (*Db2Scrapper) QueryDatabases ¶
func (e *Db2Scrapper) QueryDatabases(ctx context.Context) ([]*scrapper.DatabaseRow, error)
func (*Db2Scrapper) QueryPlatformUsers ¶ added in v0.21.0
func (e *Db2Scrapper) QueryPlatformUsers(ctx context.Context) (*scrapper.PlatformUsers, error)
QueryPlatformUsers lists the authorization IDs of type user the database knows from its grants, with the roles granted to each. Db2 has no catalog of users (see platformUsersCompletenessReason), so the listing is never known to be complete and only roles can be read about a user. Groups (GRANTEETYPE G) and roles are not users and are not listed; a role granted to a group does not reach the users of that group either, as their membership lives outside the database.
The first of authIdSources that answers is the listing. Each one before it that did not is reported as refused, unavailable or failed, and the next is read whatever the reason: a failure of one view (a timeout, a decode error) says nothing about the others, and a connection that is down fails them all, which fails the call.
func (*Db2Scrapper) QuerySchemas ¶
func (*Db2Scrapper) QuerySegments ¶
func (e *Db2Scrapper) QuerySegments(ctx context.Context, sql string, args ...any) ([]*scrapper.SegmentRow, error)
func (*Db2Scrapper) QueryShape ¶
func (e *Db2Scrapper) QueryShape(ctx context.Context, sql string) ([]*scrapper.QueryShapeColumn, error)
func (*Db2Scrapper) QuerySqlDefinitions ¶
func (e *Db2Scrapper) QuerySqlDefinitions(ctx context.Context) ([]*scrapper.SqlDefinitionRow, error)
func (*Db2Scrapper) QueryTableConstraints ¶
func (e *Db2Scrapper) QueryTableConstraints(ctx context.Context) ([]*scrapper.TableConstraintRow, error)
func (*Db2Scrapper) QueryTableMetrics ¶
func (e *Db2Scrapper) QueryTableMetrics(ctx context.Context, lastMetricsFetchTime time.Time) ([]*scrapper.TableMetricsRow, error)
func (*Db2Scrapper) QueryTables ¶
func (e *Db2Scrapper) QueryTables(ctx context.Context, opts ...scrapper.QueryTablesOption) ([]*scrapper.TableRow, error)
func (*Db2Scrapper) RunRawQuery ¶
func (e *Db2Scrapper) RunRawQuery(ctx context.Context, sql string) (scrapper.RawQueryRowIterator, error)
func (*Db2Scrapper) SqlDialect ¶
func (e *Db2Scrapper) SqlDialect() sqldialect.Dialect
func (*Db2Scrapper) ValidateConfiguration ¶
func (e *Db2Scrapper) ValidateConfiguration(ctx context.Context) ([]string, error)
type Db2ScrapperConf ¶
type Db2ScrapperConf struct {
dwhexecdb2.Db2Conf
}
Db2ScrapperConf configures a scrapper for IBM Db2 for Linux, UNIX and Windows. Db2 for z/OS and Db2 for i keep their catalogs elsewhere (SYSIBM.SYS*, QSYS2) and are not supported.