-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Core OCR Soak Config #15866
base: develop
Are you sure you want to change the base?
Core OCR Soak Config #15866
Conversation
I see you updated files related to
|
Quality Gate passedIssues Measures |
AER Report: CI Coreaer_workflow , commit , Detect Changes , Clean Go Tidy & Generate , Scheduled Run Frequency , GolangCI Lint (.) , Core Tests (go_core_tests) , test-scripts , Core Tests (go_core_tests_integration) , Core Tests (go_core_ccip_deployment_tests) , Core Tests (go_core_fuzz) , Core Tests (go_core_race_tests) , lint , SonarQube Scan 1. Documentation mismatch error:go_core_testsSource of Error:Run tests 2025-01-08T17:53:50.6078968Z --- FAIL: TestConfigDocs (0.09s)
Run tests 2025-01-08T17:53:50.6079905Z config_docs_test.go:22:
Run tests 2025-01-08T17:53:50.6081442Z Error Trace: /home/runner/work/chainlink/chainlink/config_docs_test.go:22
Run tests 2025-01-08T17:53:50.6082534Z Error: Not equal:
Run tests 2025-01-08T17:53:50.8141732Z actual : "[//]: # (Documentation generated from docs/*.toml - DO NOT EDIT.)\n\nThis document describes the TOML format for configuration.\n\nSee also [SECRETS.md](SECRETS.md)\n\n## Example\n\n```toml\nLog.Level = 'debug'\n\n[[EVM]]\nChainID = '1' # Required\n\n[[EVM.Nodes]]\nName = 'fake' # Required\nWSURL = 'wss://foo.bar/ws'\nHTTPURL = 'https://foo.bar' # Required\n```\n\n## Global\n```toml\nInsecureFastScrypt = false # Default\nRootDir = '~/.chainlink' # Default\nShutdownGracePeriod = '5s' # Default\n```\n\n\n### InsecureFastScrypt\n:warning: **_ADVANCED_**: _Do not change this setting unless you know what you are doing._\n```toml\nInsecureFastScrypt = false # Default\n```\nInsecureFastScrypt causes all key stores to encrypt using \"fast\" scrypt params instead. This is insecure and only useful for local testing. DO NOT ENABLE THIS IN PRODUCTION.\n\n### RootDir\n```toml\nRootDir = '~/.chainlink' # Default\n```\nRootDir is the Chainlink node's root directory. This is the default directory for logging, database backups, cookies, and other misc Chainlink node files. Chainlink nodes will always ensure this directory has 700 permissions because it might contain sensitive data.\n\n### ShutdownGracePeriod\n```toml\nShutdownGracePeriod = '5s' # Default\n```\nShutdownGracePeriod is the maximum time allowed to shut down gracefully. If exceeded, the node will terminate immediately to avoid being SIGKILLed.\n\n## Feature\n```toml\n[Feature]\nFeedsManager = true # Default\nLogPoller = false # Default\nUICSAKeys = false # Default\nCCIP = true # Default\nMultiFeedsManagers = false # Default\n```\n\n\n### FeedsManager\n```toml\nFeedsManager = true # Default\n```\nFeedsManager enables the feeds manager service.\n\n### LogPoller\n```toml\nLogPoller = false # Default\n```\nLogPoller enables the log poller, an experimental approach to processing logs, required if also using Evm.UseForwarders or OCR2.\n\n### UICSAKeys\n```toml\nUICSAKeys = false # Default\n```\nUICSAKeys enables CSA Keys in the UI.\n\n### CCIP\n```toml\nCCIP = true # Default\n```\nCCIP enables the CCIP service.\n\n### MultiFeedsManagers\n```toml\nMultiFeedsManagers = false # Default\n```\nMultiFeedsManagers enables support for multiple feeds manager connections.\n\n## Database\n```toml\n[Database]\nDefaultIdleInTxSessionTimeout = '1h' # Default\nDefaultLockTimeout = '15s' # Default\nDefaultQueryTimeout = '10s' # Default\nLogQueries = false # Default\nMaxIdleConns = 10 # Default\nMaxOpenConns = 100 # Default\nMigrateOnStartup = true # Default\n```\n\n\n### DefaultIdleInTxSessionTimeout\n```toml\nDefaultIdleInTxSessionTimeout = '1h' # Default\n```\nDefaultIdleInTxSessionTimeout is the maximum time allowed for a transaction to be open and idle before timing out. See Postgres `idle_in_transaction_session_timeout` for more details.\n\n### DefaultLockTimeout\n```toml\nDefaultLockTimeout = '15s' # Default\n```\nDefaultLockTimeout is the maximum time allowed to wait for database lock of any kind before timing out. See Postgres `lock_timeout` for more details.\n\n### DefaultQueryTimeout\n```toml\nDefaultQueryTimeout = '10s' # Default\n```\nDefaultQueryTimeout is the maximum time allowed for standard queries before timing out.\n\n### LogQueries\n```toml\nLogQueries = false # Default\n```\nLogQueries tells the Chainlink node to log database queries made using the default logger. SQL statements will be logged at `debug` level. Not all statements can be logged. The best way to get a true log of all SQL statements is to enable SQL statement logging on Postgres.\n\n### MaxIdleConns\n```toml\nMaxIdleConns = 10 # Default\n```\nMaxIdleConns configures the maximum number of idle database connections that the Chainlink node will keep open. Think of this as the baseline number of database connections per Chainlink node instance. Increasing this number can help to improve performance under database-heavy workloads.\n\nPostgres has connection limits, so you must use caution when increasing this value. If you are running several instances of a Chainlink node or another application on a single database server, you might run out of Postgres connection slots if you raise this value too high.\n\n### MaxOpenConns\n```toml\nMaxOpenConns = 100 # Default\n```\nMaxOpenConns configures the maximum number of database connections that a Chainlink node will have open at any one time. Think of this as the maximum burst upper bound limit of database connections per Chainlink node instance. Increasing this number can help to improve performance under database-heavy workloads.\n\nPostgres has connection limits, so you must use caution when increasing this value. If you are running several instances of a Chainlink node or another application on a single database server, you might run out of Postgres connection slots if you raise this value too high.\n\n### MigrateOnStartup\n```toml\nMigrateOnStartup = true # Default\n```\nMigrateOnStartup controls whether a Chainlink node will attempt to automatically migrate the database on boot. If you want more control over your database migration process, set this variable to `false` and manually migrate the database using the CLI `migrate` command instead.\n\n## Database.Backup\n```toml\n[Database.Backup]\nMode = 'none' # Default\nDir = 'test/backup/dir' # Example\nOnVersionUpgrade = true # Default\nFrequency = '1h' # Default\n```\nAs a best practice, take regular database backups in case of accidental data loss. This best practice is especially important when you upgrade your Chainlink node to a new version. Chainlink nodes support automated database backups to make this process easier.\n\nNOTE: Dumps can cause high load and massive database latencies, which will negatively impact the normal functioning of the Chainlink node. For this reason, it is recommended to set a `URL` and point it to a read replica if you enable automatic backups.\n\n### Mode\n```toml\nMode = 'none' # Default\n```\nMode sets the type of automatic database backup, which can be one of _none_, `lite`, or `full`. If enabled, the Chainlink node will always dump a backup on every boot before running migrations. Additionally, it will automatically take database backups that overwrite the backup file for the given version at regular intervals if `Frequency` is set to a non-zero interval.\n\n_none_ - Disables backups.\n`lite` - Dumps small tables including configuration and keys that are essential for the node to function, which excludes historical data like job runs, transaction history, etc.\n`full` - Dumps the entire database.\n\nIt will write to a file like `'Dir'/backup/cl_backup_<VERSION>.dump`. There is one backup dump file per version of the Chainlink node. If you upgrade the node, it will keep the backup taken right before the upgrade migration so you can restore to an older version if necessary.\n\n### Dir\n```toml\nDir = 'test/backup/dir' # Example\n```\nDir sets the directory to use for saving the backup file. Use this if you want to save the backup file in a directory other than the default ROOT directory.\n\n### OnVersionUpgrade\n```toml\nOnVersionUpgrade = true # Default\n```\nOnVersionUpgrade enables automatic backups of the database before running migrations, when you are upgrading to a new version.\n\n### Frequency\n```toml\nFrequency = '1h' # Default\n```\nFrequency sets the interval for database dumps, if set to a positive duration and `Mode` is not _none_.\n\nSet to `0` to disable periodic backups.\n\n## Database.Listener\n:warning: **_ADVANCED_**: _Do not change these settings unless you know what you are doing._\n```toml\n[Database.Listener]\nMaxReconnectDuration = '10m' # Default\nMinReconnectInterval = '1m' # Default\nFallbackPollInterval = '30s' # Default\n```\nThese settings control the postgres event listener.\n\n### MaxReconnectDuration\n```toml\nMaxReconnectDuration = '10m' # Default\n```\nMaxReconnectDuration is the maximum duration to wait between reconnect attempts.\n\n### MinReconnectInterval\n```toml\nMinReconnectInterval = '1m' # Default\n```\nMinReconnectInterval controls the duration to wait before trying to re-establish the database connection after connection loss. After each consecutive failure this interval is doubled, until MaxReconnectInterval is reached. Successfully completing the connection establishment procedure resets the interval back to MinReconnectInterval.\n\n### FallbackPollInterval\n```toml\nFallbackPollInterval = '30s' # Default\n```\nFallbackPollInterval controls how often clients should manually poll as a fallback in case the postgres event was missed/dropped.\n\n## Database.Lock\n:warning: **_ADVANCED_**: _Do not change these settings unless you know what you are doing._\n```toml\n[Database.Lock]\nEnabled = true # Default\nLeaseDuration = '10s' # Default\nLeaseRefreshInterval = '1s' # Default\n```\nIdeally, you should use a container orchestration system like [Kubernetes](https://kubernetes.io/) to ensure that only one Chainlink node instance can ever use a specific Postgres database. However, some node operators do not have the technical capacity to do this. Common use cases run multiple Chainlink node instances in failover mode as recommended by our official documentation. The first instance takes a lock on the database and subsequent instances will wait trying to take this lock in case the first instance fails.\n\n- If your nodes or applications hold locks open for several hours or days, Postgres is unable to complete internal cleanup tasks. The Postgres maintainers explicitly discourage holding locks open for long periods of time.\n\nBecause of the complications with advisory locks, Chainlink nodes with v2.0 and later only support `lease` locking mode. The `lease` locking mode works using the following process:\n\n- Node A creates one row in the database with the client ID and updates it once per second.\n- Node B spinlocks and checks periodically to see if the client ID is too old. If the client ID is not updated after a period of time, node B assumes that node A failed and takes over. Node B becomes the owner of the row and updates the client ID once per second.\n- If node A comes back, it attempts to take out a lease, realizes that the database has been leased to another process, and exits the entire application immediately.\n\n### Enabled\n```toml\nEnabled = true # Default\n```\nEnabled enables the database lock.\n\n### LeaseDuration\n```toml\nLeaseDuration = '10s' # Default\n```\nLeaseDuration is how long the lease lock will last before expiring.\n\n### LeaseRefreshInterval\n```toml\nLeaseRefreshInterval = '1s' # Default\n```\nLeaseRefreshInterval determines how often to refresh the lease lock. Also controls how often a standby node will check to see if it can grab the lease.\n\n## TelemetryIngress\n```toml\n[TelemetryIngress]\nUniConn = false # Default\nLogging = false # Default\nBufferSize = 100 # Default\nMaxBatchSize = 50 # Default\nSendInterval = '500ms' # Default\nSendTimeout = '10s' # Default\nUseBatchSend = true # Default\n```\n\n\n### UniConn\n```toml\nUniConn = false # Default\n```\nUniConn toggles which ws connection style is used.\n\n### Logging\n```toml\nLogging = false # Default\n```\nLogging toggles verbose logging of the raw telemetry messages being sent.\n\n### BufferSize\n```toml\nBufferSize = 100 # Default\n```\nBufferSize is the number of telemetry messages to buffer before dropping new ones.\n\n### MaxBatchSize\n```toml\nMaxBatchSize = 50 # Default\n```\nMaxBatchSize is the maximum number of messages to batch into one telemetry request.\n\n### SendInterval\n```toml\nSendInterval = '500ms' # Default\n```\nSendInterval determines how often batched telemetry is sent to the ingress server.\n\n### SendTimeout\n```toml\nSendTimeout = '10s' # Default\n```\nSendTimeout is the max duration to wait for the request to complete when sending batch telemetry.\n\n### UseBatchSend\n```toml\nUseBatchSend = true # Default\n```\nUseBatchSend toggles sending telemetry to the ingress server using the batch client.\n\n## TelemetryIngress.Endpoints\n```toml\n[[TelemetryIngress.Endpoints]] # Example\nNetwork = 'EVM' # Example\nChainID = '111551111' # Example\nServerPubKey = 'test-pub-key-111551111-evm' # Example\nURL = 'localhost-111551111-evm:9000' # Example\n```\n\n\n### Network\n```toml\nNetwork = 'EVM' # Example\n```\nNetwork aka EVM, Solana, Starknet\n\n### ChainID\n```toml\nChainID = '111551111' # Example\n```\nChainID of the network\n\n### ServerPubKey\n```toml\nServerPubKey = 'test-pub-key-111551111-evm' # Example\n```\nServerPubKey is the public key of the telemetry server.\n\n### URL\n```toml\nURL = 'localhost-111551111-evm:9000' # Example\n```\nURL is where to send telemetry.\n\n## AuditLogger\n```toml\n[AuditLogger]\nEnabled = false # Default\nForwardToUrl = 'http://localhost:9898' # Example\nJsonWrapperKey = 'event' # Example\nHeaders = ['Authorization: token', 'X-SomeOther-Header: value with spaces | and a bar+*'] # Example\n```\n\n\n### Enabled\n```toml\nEnabled = false # Default\n```\nEnabled determines if this logger should be configured at all\n\n### ForwardToUrl\n```toml\nForwardToUrl = 'http://localhost:9898' # Example\n```\nForwardToUrl is where you want to forward logs to\n\n### JsonWrapperKey\n```toml\nJsonWrapperKey = 'event' # Example\n```\nJsonWrapperKey if set wraps the map of data under another single key to make parsing easier\n\n### Headers\n```toml\nHeaders = ['Authorization: token', 'X-SomeOther-Header: value with spaces | and a bar+*'] # Example\n```\nHeaders is the set of headers you wish to pass along with each request\n\n## Log\n```toml\n[Log]\nLevel = 'info' # Default\nJSONConsole = false # Default\nUnixTS = false # Default\n```\n\n\n### Level\n```toml\nLevel = 'info' # Default\n```\nLevel determines only what is printed on the screen/console. This configuration does not apply to the logs that are recorded in a file (see [`Log.File`](#logfile) for more details).\n\nThe available levels are:\n- \"debug\": Useful for forensic debugging of issues.\n- \"info\": High-level informational messages. (default)\n- \"warn\": A mild error occurred that might require non-urgent action. Check these warnings semi-regularly to see if any of them require attention. These warnings usually happen due to factors outside of the control of the node operator. Examples: Unexpected responses from a remote API or misleading networking errors.\n- \"error\": An unexpected error occurred during the regular operation of a well-maintained node. Node operators might need to take action to remedy this error. Check these regularly to see if any of them require attention. Examples: Use of deprecated configuration options or incorrectly configured settings that cause a job to fail.\n- \"crit\": A critical error occurred. The node might be unable to function. Node operators should take immediate action to fix these errors. Examples: The node could not boot because a network socket could not be opened or the database became inaccessible.\n- \"panic\": An exceptional error occurred that could not be handled. If the node is unresponsive, node operators should try to restart their nodes and notify the Chainlink team of a potential bug.\n- \"fatal\": The node encountered an unrecoverable problem and had to exit.\n\n### JSONConsole\n```toml\nJSONConsole = false # Default\n```\nJSONConsole enables JSON logging. Otherwise, the log is saved in a human-friendly console format.\n\n### UnixTS\n```toml\nUnixTS = false # Default\n```\nUnixTS enables legacy unix timestamps.\n\nPrevious versions of Chainlink nodes wrote JSON logs with a unix timestamp. As of v1.1.0 and up, the default has changed to use ISO8601 timestamps for better readability.\n\n## Log.File\n```toml\n[Log.File]\nDir = '/my/log/directory' # Example\nMaxSize = '5120mb' # Default\nMaxAgeDays = 0 # Default\nMaxBackups = 1 # Default\n```\n\n\n### Dir\n```toml\nDir = '/my/log/directory' # Example\n```\nDir sets the log directory. By default, Chainlink nodes write log data to
</cicore> |
Core Testnet OCR Soak Test