SYMBOL INDEX (226 symbols across 34 files) FILE: exporter/arg.go function ParseArgs (line 42) | func ParseArgs() { FILE: exporter/args_normalize.go function normalizeKingpinBoolEqualsArgs (line 18) | func normalizeKingpinBoolEqualsArgs(args []string, model *kingpin.Applic... FILE: exporter/args_normalize_test.go function TestNormalizeKingpinBoolEqualsArgs_Long (line 10) | func TestNormalizeKingpinBoolEqualsArgs_Long(t *testing.T) { function TestNormalizeKingpinBoolEqualsArgs_Short (line 36) | func TestNormalizeKingpinBoolEqualsArgs_Short(t *testing.T) { FILE: exporter/collector.go type predicateCacheEntry (line 17) | type predicateCacheEntry struct type Collector (line 24) | type Collector struct method Describe (line 61) | func (q *Collector) Describe(ch chan<- *prometheus.Desc) { method Collect (line 68) | func (q *Collector) Collect(ch chan<- prometheus.Metric) { method ResultSize (line 86) | func (q *Collector) ResultSize() int { method Error (line 91) | func (q *Collector) Error() error { method PredicateSkip (line 96) | func (q *Collector) PredicateSkip() (bool, string) { method Duration (line 101) | func (q *Collector) Duration() float64 { method CacheHit (line 106) | func (q *Collector) CacheHit() bool { method executePredicateQueries (line 113) | func (q *Collector) executePredicateQueries(ctx context.Context) bool { method execute (line 216) | func (q *Collector) execute() { method makeDescMap (line 323) | func (q *Collector) makeDescMap() { method sendDescriptors (line 351) | func (q *Collector) sendDescriptors(ch chan<- *prometheus.Desc) { method cacheExpired (line 359) | func (q *Collector) cacheExpired() bool { method cacheTTL (line 363) | func (q *Collector) cacheTTL() float64 { method sendMetrics (line 368) | func (q *Collector) sendMetrics(ch chan<- prometheus.Metric) { function NewCollector (line 47) | func NewCollector(q *Query, s *Server) *Collector { FILE: exporter/column.go constant DISCARD (line 14) | DISCARD = "DISCARD" constant LABEL (line 15) | LABEL = "LABEL" constant COUNTER (line 16) | COUNTER = "COUNTER" constant GAUGE (line 17) | GAUGE = "GAUGE" constant HISTOGRAM (line 18) | HISTOGRAM = "HISTOGRAM" type Column (line 30) | type Column struct method parseNumbers (line 46) | func (c *Column) parseNumbers() error { method PrometheusValueType (line 67) | func (c *Column) PrometheusValueType() prometheus.ValueType { method String (line 80) | func (c *Column) String() string { method MetricDesc (line 85) | func (c *Column) MetricDesc(prefix string, labels []string) *MetricDesc { type MetricDesc (line 98) | type MetricDesc struct method String (line 105) | func (m *MetricDesc) String() string { FILE: exporter/concurrency_test.go function newMockExporter (line 12) | func newMockExporter(up bool, recovery bool) *Exporter { function TestReloadAndHealthHandlersNoDeadlock (line 27) | func TestReloadAndHealthHandlersNoDeadlock(t *testing.T) { FILE: exporter/config.go function GetConfig (line 13) | func GetConfig() (res string) { function ParseConfig (line 35) | func ParseConfig(content []byte) (queries map[string]*Query, err error) { function FinalizeQueries (line 156) | func FinalizeQueries(queries map[string]*Query, source string) error { function ParseQuery (line 175) | func ParseQuery(config string) (*Query, error) { function LoadConfig (line 197) | func LoadConfig(configPath string) (queries map[string]*Query, err error) { FILE: exporter/config_coverage_pg9_test.go function TestConfigCoveragePG9 (line 12) | func TestConfigCoveragePG9(t *testing.T) { FILE: exporter/config_coverage_test.go function TestConfigCoveragePG10To18 (line 13) | func TestConfigCoveragePG10To18(t *testing.T) { FILE: exporter/config_merged_test.go function parseConfigDirLikeMerge (line 12) | func parseConfigDirLikeMerge(t *testing.T, dir string) map[string]*Query { function TestMergedConfigsMatchSplitDirectories (line 51) | func TestMergedConfigsMatchSplitDirectories(t *testing.T) { FILE: exporter/config_style_test.go function TestInlineMetricDescriptionsUseDoubleQuotes (line 16) | func TestInlineMetricDescriptionsUseDoubleQuotes(t *testing.T) { function TestLegacySplitConfigsEndWithTwoBlankLines (line 64) | func TestLegacySplitConfigsEndWithTwoBlankLines(t *testing.T) { FILE: exporter/config_test.go function TestParseConfigUsageCaseInsensitive (line 9) | func TestParseConfigUsageCaseInsensitive(t *testing.T) { function TestParseConfigInvalidUsage (line 40) | func TestParseConfigInvalidUsage(t *testing.T) { function TestParseConfigRejectsMultiColumnMetricsEntry (line 55) | func TestParseConfigRejectsMultiColumnMetricsEntry(t *testing.T) { function TestParseQueryErrors (line 70) | func TestParseQueryErrors(t *testing.T) { function TestLoadConfigDirectoryPriorityAndOverride (line 92) | func TestLoadConfigDirectoryPriorityAndOverride(t *testing.T) { function TestLoadConfigDirectoryAllInvalidReturnsError (line 142) | func TestLoadConfigDirectoryAllInvalidReturnsError(t *testing.T) { function TestGetConfigPrecedence (line 160) | func TestGetConfigPrecedence(t *testing.T) { FILE: exporter/exporter.go constant healthStatusUnknown (line 18) | healthStatusUnknown int32 = iota constant healthStatusDown (line 19) | healthStatusDown constant healthStatusStarting (line 20) | healthStatusStarting constant healthStatusPrimary (line 21) | healthStatusPrimary constant healthStatusReplica (line 22) | healthStatusReplica type Exporter (line 27) | type Exporter struct method Up (line 93) | func (e *Exporter) Up() bool { method Recovery (line 98) | func (e *Exporter) Recovery() bool { method Status (line 103) | func (e *Exporter) Status() string { method updateHealthState (line 118) | func (e *Exporter) updateHealthState(up, recovery bool) { method updateHealthStateWithStartup (line 122) | func (e *Exporter) updateHealthStateWithStartup(up, recovery, starting... method updateHealthStateFromServer (line 141) | func (e *Exporter) updateHealthStateFromServer() { method probeAndUpdateHealthState (line 155) | func (e *Exporter) probeAndUpdateHealthState() error { method startHealthLoop (line 167) | func (e *Exporter) startHealthLoop() { method stopHealthLoop (line 201) | func (e *Exporter) stopHealthLoop() { method Describe (line 219) | func (e *Exporter) Describe(ch chan<- *prometheus.Desc) { method Collect (line 233) | func (e *Exporter) Collect(ch chan<- prometheus.Metric) { method collectServerMetrics (line 281) | func (e *Exporter) collectServerMetrics(ch chan<- prometheus.Metric) { method Explain (line 337) | func (e *Exporter) Explain() string { method Stat (line 342) | func (e *Exporter) Stat() string { method Check (line 348) | func (e *Exporter) Check() { method Close (line 357) | func (e *Exporter) Close() { method setupInternalMetrics (line 383) | func (e *Exporter) setupInternalMetrics() { method collectInternalMetrics (line 518) | func (e *Exporter) collectInternalMetrics(ch chan<- prometheus.Metric) { method OnDatabaseChange (line 607) | func (e *Exporter) OnDatabaseChange(change map[string]bool) { method CreateServer (line 639) | func (e *Exporter) CreateServer(dbname string) { method RemoveServer (line 660) | func (e *Exporter) RemoveServer(dbname string) { method IterateServer (line 682) | func (e *Exporter) IterateServer() (res []*Server) { method ExplainFunc (line 805) | func (e *Exporter) ExplainFunc(w http.ResponseWriter, r *http.Request) { method StatFunc (line 819) | func (e *Exporter) StatFunc(w http.ResponseWriter, r *http.Request) { method UpCheckFunc (line 831) | func (e *Exporter) UpCheckFunc(w http.ResponseWriter, r *http.Request) { method PrimaryCheckFunc (line 853) | func (e *Exporter) PrimaryCheckFunc(w http.ResponseWriter, r *http.Req... method ReplicaCheckFunc (line 878) | func (e *Exporter) ReplicaCheckFunc(w http.ResponseWriter, r *http.Req... function NewExporter (line 535) | func NewExporter(dsn string, opts ...ExporterOpt) (e *Exporter, err erro... type ExporterOpt (line 696) | type ExporterOpt function WithConfig (line 699) | func WithConfig(configPath string) ExporterOpt { function WithConfigReader (line 706) | func WithConfigReader(reader io.Reader) ExporterOpt { function WithConstLabels (line 713) | func WithConstLabels(s string) ExporterOpt { function WithCacheDisabled (line 720) | func WithCacheDisabled(disableCache bool) ExporterOpt { function WithIntroDisabled (line 727) | func WithIntroDisabled(disableIntro bool) ExporterOpt { function WithFailFast (line 734) | func WithFailFast(failFast bool) ExporterOpt { function WithNamespace (line 741) | func WithNamespace(namespace string) ExporterOpt { function WithTags (line 748) | func WithTags(tags string) ExporterOpt { function WithAutoDiscovery (line 755) | func WithAutoDiscovery(flag bool) ExporterOpt { function WithExcludeDatabase (line 762) | func WithExcludeDatabase(excludeStr string) ExporterOpt { function WithIncludeDatabase (line 774) | func WithIncludeDatabase(includeStr string) ExporterOpt { function WithConnectTimeout (line 787) | func WithConnectTimeout(timeout int) ExporterOpt { function currentExporter (line 795) | func currentExporter() *Exporter { function VersionFunc (line 903) | func VersionFunc(w http.ResponseWriter, r *http.Request) { function TitleFunc (line 911) | func TitleFunc(w http.ResponseWriter, r *http.Request) { function ReloadFunc (line 917) | func ReloadFunc(w http.ResponseWriter, r *http.Request) { FILE: exporter/exporter_handlers_opts_test.go function TestExporterOptionHelpers (line 11) | func TestExporterOptionHelpers(t *testing.T) { function TestPublicHandlers (line 52) | func TestPublicHandlers(t *testing.T) { function TestExplainAndStatHandlersWhenExporterUnavailable (line 68) | func TestExplainAndStatHandlersWhenExporterUnavailable(t *testing.T) { function TestHealthHandlersPassiveModeNoActiveProbe (line 89) | func TestHealthHandlersPassiveModeNoActiveProbe(t *testing.T) { FILE: exporter/global.go function setCurrentExporter (line 37) | func setCurrentExporter(e *Exporter) { FILE: exporter/health_state_test.go function TestIsPostgresStartupError (line 11) | func TestIsPostgresStartupError(t *testing.T) { function TestUpdateHealthStateWithStartup (line 29) | func TestUpdateHealthStateWithStartup(t *testing.T) { FILE: exporter/main.go function DryRun (line 17) | func DryRun() { function Reload (line 40) | func Reload() error { function Run (line 90) | func Run() { FILE: exporter/metrics_lifecycle_test.go function makeCachedCollectorForServer (line 10) | func makeCachedCollectorForServer(s *Server, name string, val float64) *... function TestExporterCollectAndInternalMetrics (line 21) | func TestExporterCollectAndInternalMetrics(t *testing.T) { function TestExporterDescribeAndCloseNoPanic (line 62) | func TestExporterDescribeAndCloseNoPanic(t *testing.T) { function TestDisableIntroSuppressesInternalMetrics (line 88) | func TestDisableIntroSuppressesInternalMetrics(t *testing.T) { function TestServerIntrospectionHelpers (line 129) | func TestServerIntrospectionHelpers(t *testing.T) { FILE: exporter/pgurl.go function GetPGURL (line 10) | func GetPGURL() string { function RetrievePGURL (line 24) | func RetrievePGURL() (res string) { function ProcessPGURL (line 62) | func ProcessPGURL(pgurl string) string { function ShadowPGURL (line 79) | func ShadowPGURL(pgurl string) string { function ParseDatname (line 104) | func ParseDatname(pgurl string) string { function ReplaceDatname (line 119) | func ReplaceDatname(pgurl, datname string) string { FILE: exporter/pgurl_test.go function TestProcessPGURLKeepsEncodedQueryValues (line 10) | func TestProcessPGURLKeepsEncodedQueryValues(t *testing.T) { function TestShadowPGURLRedactsQueryPassword (line 33) | func TestShadowPGURLRedactsQueryPassword(t *testing.T) { function TestParseDatnameAndReplaceDatname (line 46) | func TestParseDatnameAndReplaceDatname(t *testing.T) { function TestRetrievePGURLPriority (line 68) | func TestRetrievePGURLPriority(t *testing.T) { FILE: exporter/predicate_cache_test.go function TestPredicateCacheHitSkipsDBQuery (line 9) | func TestPredicateCacheHitSkipsDBQuery(t *testing.T) { function TestPredicateCacheMissTriggersDBQuery (line 37) | func TestPredicateCacheMissTriggersDBQuery(t *testing.T) { function TestPredicateCacheDisabledByTTLZero (line 57) | func TestPredicateCacheDisabledByTTLZero(t *testing.T) { FILE: exporter/probehealth_pgbouncer_test.go type probeHealthTestDriver (line 18) | type probeHealthTestDriver struct method Open (line 20) | func (d probeHealthTestDriver) Open(name string) (driver.Conn, error) { type probeHealthTestConn (line 24) | type probeHealthTestConn struct method Prepare (line 26) | func (c *probeHealthTestConn) Prepare(query string) (driver.Stmt, erro... method Close (line 29) | func (c *probeHealthTestConn) Close() error { return nil } method Begin (line 30) | func (c *probeHealthTestConn) Begin() (driver.Tx, error) { return nil,... method Ping (line 32) | func (c *probeHealthTestConn) Ping(ctx context.Context) error { return... method QueryContext (line 34) | func (c *probeHealthTestConn) QueryContext(ctx context.Context, query ... type probeHealthTestRows (line 41) | type probeHealthTestRows struct method Columns (line 43) | func (r *probeHealthTestRows) Columns() []string { return []string{"ve... method Close (line 44) | func (r *probeHealthTestRows) Close() error { return nil } method Next (line 45) | func (r *probeHealthTestRows) Next(dest []driver.Value) error { function init (line 49) | func init() { function TestProbeHealthPgbouncerDoesNotPingAndTreatsNoRowsAsUp (line 53) | func TestProbeHealthPgbouncerDoesNotPingAndTreatsNoRowsAsUp(t *testing.T) { FILE: exporter/prom_validate.go function validatePromLabelName (line 10) | func validatePromLabelName(name string) error { function validatePromMetricName (line 23) | func validatePromMetricName(name string) error { FILE: exporter/query.go type Query (line 17) | type Query struct method MarshalYAML (line 119) | func (q *Query) MarshalYAML() string { method Explain (line 133) | func (q *Query) Explain() string { method HTML (line 145) | func (q *Query) HTML() string { method HasTag (line 158) | func (q *Query) HasTag(tag string) bool { method ColumnList (line 163) | func (q *Query) ColumnList() (res []*Column) { method LabelList (line 172) | func (q *Query) LabelList() []string { method MetricList (line 186) | func (q *Query) MetricList() (res []*MetricDesc) { method TimeoutDuration (line 196) | func (q *Query) TimeoutDuration() time.Duration { type PredicateQuery (line 46) | type PredicateQuery struct FILE: exporter/query_column_test.go function makeSampleQuery (line 11) | func makeSampleQuery() *Query { function TestColumnPrometheusValueType (line 42) | func TestColumnPrometheusValueType(t *testing.T) { function TestColumnAndMetricDescString (line 61) | func TestColumnAndMetricDescString(t *testing.T) { function TestQueryHelpersAndRender (line 79) | func TestQueryHelpersAndRender(t *testing.T) { FILE: exporter/reload_test.go function TestReloadUpdatesQueriesInPlace (line 9) | func TestReloadUpdatesQueriesInPlace(t *testing.T) { FILE: exporter/server.go constant connMaxLifeTime (line 21) | connMaxLifeTime = 1 * time.Minute constant pgSQLStateCannotConnectNow (line 23) | pgSQLStateCannotConnectNow = "57P03" type Server (line 30) | type Server struct method GetConnectTimeout (line 89) | func (s *Server) GetConnectTimeout() time.Duration { method Name (line 97) | func (s *Server) Name() string { method Error (line 104) | func (s *Server) Error() error { method Check (line 109) | func (s *Server) Check() error { method ProbeHealth (line 118) | func (s *Server) ProbeHealth() (up, recovery, starting bool, err error) { method Plan (line 369) | func (s *Server) Plan(queries ...*Query) { method ResetStats (line 406) | func (s *Server) ResetStats() { method Compatible (line 430) | func (s *Server) Compatible(query *Query) (res bool, reason string) { method Explain (line 526) | func (s *Server) Explain() string { method Stat (line 537) | func (s *Server) Stat() string { method ExplainHTML (line 563) | func (s *Server) ExplainHTML() string { method Describe (line 574) | func (s *Server) Describe(ch chan<- *prometheus.Desc) { method Collect (line 583) | func (s *Server) Collect(ch chan<- prometheus.Metric) { method collectFatalQueries (line 624) | func (s *Server) collectFatalQueries(ch chan<- prometheus.Metric) error { method collectNonFatalQueries (line 639) | func (s *Server) collectNonFatalQueries(ch chan<- prometheus.Metric) { method executeQuery (line 652) | func (s *Server) executeQuery(query *Collector, ch chan<- prometheus.M... method HasTag (line 680) | func (s *Server) HasTag(tag string) bool { method Duration (line 690) | func (s *Server) Duration() float64 { method Uptime (line 698) | func (s *Server) Uptime() float64 { function isPostgresStartupError (line 160) | func isPostgresStartupError(err error) bool { function PgbouncerPrecheck (line 166) | func PgbouncerPrecheck(s *Server) (err error) { function ParseSemver (line 233) | func ParseSemver(semverStr string) int { function PostgresPrecheck (line 260) | func PostgresPrecheck(s *Server) (err error) { function NewServer (line 705) | func NewServer(dsn string, opts ...ServerOpt) *Server { type ServerOpt (line 726) | type ServerOpt function WithConstLabel (line 729) | func WithConstLabel(labels prometheus.Labels) ServerOpt { function WithCachePolicy (line 743) | func WithCachePolicy(disableCache bool) ServerOpt { function WithQueries (line 750) | func WithQueries(queries map[string]*Query) ServerOpt { function WithServerTags (line 757) | func WithServerTags(tags []string) ServerOpt { function WithServerConnectTimeout (line 766) | func WithServerConnectTimeout(timeout int) ServerOpt { FILE: exporter/server_exporter_test.go function makeGaugeQuery (line 11) | func makeGaugeQuery(name string, priority int, tags ...string) *Query { function TestParseSemver (line 28) | func TestParseSemver(t *testing.T) { function TestNewServerAndBasics (line 40) | func TestNewServerAndBasics(t *testing.T) { function TestServerCompatible (line 83) | func TestServerCompatible(t *testing.T) { function TestPlanResetAndCollectCached (line 135) | func TestPlanResetAndCollectCached(t *testing.T) { function TestExporterServerLifecycleHelpers (line 194) | func TestExporterServerLifecycleHelpers(t *testing.T) { FILE: exporter/testmain_test.go function TestMain (line 8) | func TestMain(m *testing.M) { FILE: exporter/utils.go function configureLogger (line 17) | func configureLogger(levelStr, formatStr string) *slog.Logger { function loggerOrDefault (line 50) | func loggerOrDefault() *slog.Logger { function logDebugf (line 58) | func logDebugf(format string, v ...interface{}) { function logInfof (line 63) | func logInfof(format string, v ...interface{}) { function logWarnf (line 68) | func logWarnf(format string, v ...interface{}) { function logErrorf (line 73) | func logErrorf(format string, v ...interface{}) { function logError (line 78) | func logError(msg string) { function logFatalf (line 83) | func logFatalf(format string, v ...interface{}) { function castFloat64 (line 92) | func castFloat64(t interface{}, c *Column) float64 { function castString (line 137) | func castString(t interface{}) string { function parseConstLabels (line 164) | func parseConstLabels(s string) prometheus.Labels { function parseCSV (line 197) | func parseCSV(s string) (tags []string) { FILE: exporter/utils_test.go function TestParseCSV (line 10) | func TestParseCSV(t *testing.T) { function TestParseConstLabels (line 22) | func TestParseConstLabels(t *testing.T) { function TestCastFloat64 (line 43) | func TestCastFloat64(t *testing.T) { function TestCastString (line 98) | func TestCastString(t *testing.T) { function TestConfigureLogger (line 120) | func TestConfigureLogger(t *testing.T) { function TestLogHelpersWithNilLogger (line 132) | func TestLogHelpersWithNilLogger(t *testing.T) { FILE: exporter/validate_labels.go function validateConstLabelConflicts (line 18) | func validateConstLabelConflicts(constLabels prometheus.Labels, queries ... FILE: exporter/validate_labels_test.go function TestValidateConstLabelConflicts_QueryLabelOverlap (line 8) | func TestValidateConstLabelConflicts_QueryLabelOverlap(t *testing.T) { function TestValidateConstLabelConflicts_InternalReservedLabels (line 32) | func TestValidateConstLabelConflicts_InternalReservedLabels(t *testing.T) { function TestNewExporterRejectsConstLabelConflict (line 43) | func TestNewExporterRejectsConstLabelConflict(t *testing.T) { FILE: main.go function main (line 22) | func main() {