Skip to content

Commit a7293f6

Browse files
Tombstones generation and crash reporting (#435)
1 parent dad580c commit a7293f6

File tree

6 files changed

+64
-8
lines changed

6 files changed

+64
-8
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning].
77

88
## [Unreleased]
99

10+
### Added
11+
12+
- config: Added `advanced.crash_reporting` flag to enable reporting crashes to Baking Bad.
13+
- dipdup: Save Sentry tombstone in `/tmp/dipdup-tombstone_XXXXXXX.json` on a crash.
14+
1015
### Fixed
1116

1217
- config: Do not perform env variable substitution in commented out lines.

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ RUN <<eot
1010
pip install --no-cache-dir poetry
1111
useradd -ms /bin/bash dipdup
1212
mkdir /home/dipdup/source
13-
rm -r /var/lib/apt/lists/* /var/log/* /tmp/*
13+
rm -r /var/lib/apt/lists/* /var/log/*
1414
eot
1515

1616
COPY --chown=dipdup Makefile pyproject.toml poetry.lock README.md /home/dipdup/source/

docs/config/reference.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
<span class="target" id="module-dipdup.config"></span><dl class="py class">
33
<dt class="sig sig-object py" id="dipdup.config.AdvancedConfig">
4-
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">dipdup.config.</span></span><span class="sig-name descname"><span class="pre">AdvancedConfig</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">reindex:</span> <span class="pre">~typing.Dict[~dipdup.enums.ReindexingReason</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.enums.ReindexingAction]</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scheduler:</span> <span class="pre">~typing.Optional[~typing.Dict[str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~typing.Any]]</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">postpone_jobs:</span> <span class="pre">bool</span> <span class="pre">=</span> <span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">early_realtime:</span> <span class="pre">bool</span> <span class="pre">=</span> <span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">merge_subscriptions:</span> <span class="pre">bool</span> <span class="pre">=</span> <span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metadata_interface:</span> <span class="pre">bool</span> <span class="pre">=</span> <span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">skip_version_check:</span> <span class="pre">bool</span> <span class="pre">=</span> <span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rollback_depth:</span> <span class="pre">int</span> <span class="pre">=</span> <span class="pre">2</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#dipdup.config.AdvancedConfig" title="Permalink to this definition">¶</a></dt>
4+
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">dipdup.config.</span></span><span class="sig-name descname"><span class="pre">AdvancedConfig</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">reindex:</span> <span class="pre">~typing.Dict[~dipdup.enums.ReindexingReason</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.enums.ReindexingAction]</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scheduler:</span> <span class="pre">~typing.Optional[~typing.Dict[str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~typing.Any]]</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">postpone_jobs:</span> <span class="pre">bool</span> <span class="pre">=</span> <span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">early_realtime:</span> <span class="pre">bool</span> <span class="pre">=</span> <span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">merge_subscriptions:</span> <span class="pre">bool</span> <span class="pre">=</span> <span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metadata_interface:</span> <span class="pre">bool</span> <span class="pre">=</span> <span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">skip_version_check:</span> <span class="pre">bool</span> <span class="pre">=</span> <span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rollback_depth:</span> <span class="pre">int</span> <span class="pre">=</span> <span class="pre">2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">crash_reporting:</span> <span class="pre">bool</span> <span class="pre">=</span> <span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#dipdup.config.AdvancedConfig" title="Permalink to this definition">¶</a></dt>
55
<dd><p>Feature flags and other advanced config.</p>
66
<dl class="field-list simple">
77
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -14,6 +14,7 @@
1414
<li><p><strong>metadata_interface</strong> – Expose metadata interface for TzKT</p></li>
1515
<li><p><strong>skip_version_check</strong> – Do not check for new DipDup versions on startup</p></li>
1616
<li><p><strong>rollback_depth</strong> – A number of levels to keep for rollback</p></li>
17+
<li><p><strong>crash_reporting</strong> – Enable crash reporting</p></li>
1718
</ul>
1819
</dd>
1920
</dl>
@@ -113,7 +114,7 @@
113114

114115
<dl class="py class">
115116
<dt class="sig sig-object py" id="dipdup.config.DipDupConfig">
116-
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">dipdup.config.</span></span><span class="sig-name descname"><span class="pre">DipDupConfig</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">spec_version:</span> <span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">package:</span> <span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">datasources:</span> <span class="pre">~typing.Dict[str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~typing.Union[~dipdup.config.TzktDatasourceConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.CoinbaseDatasourceConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.MetadataDatasourceConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.IpfsDatasourceConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.HttpDatasourceConfig]]</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">database:</span> <span class="pre">~typing.Union[~dipdup.config.SqliteDatabaseConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.PostgresDatabaseConfig]</span> <span class="pre">=</span> <span class="pre">SqliteDatabaseConfig(kind='sqlite'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">path=':memory:')</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">contracts:</span> <span class="pre">~typing.Dict[str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.ContractConfig]</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">indexes:</span> <span class="pre">~typing.Dict[str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~typing.Union[~dipdup.config.OperationIndexConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.BigMapIndexConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.HeadIndexConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.TokenTransferIndexConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.IndexTemplateConfig]]</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">templates:</span> <span class="pre">~typing.Dict[str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~typing.Union[~dipdup.config.OperationIndexConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.BigMapIndexConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.HeadIndexConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.TokenTransferIndexConfig]]</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">jobs:</span> <span class="pre">~typing.Dict[str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.JobConfig]</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">hooks:</span> <span class="pre">~typing.Dict[str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.HookConfig]</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">hasura:</span> <span class="pre">~typing.Optional[~dipdup.config.HasuraConfig]</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sentry:</span> <span class="pre">~typing.Optional[~dipdup.config.SentryConfig]</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prometheus:</span> <span class="pre">~typing.Optional[~dipdup.config.PrometheusConfig]</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">advanced:</span> <span class="pre">~dipdup.config.AdvancedConfig</span> <span class="pre">=</span> <span class="pre">AdvancedConfig(reindex={}</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scheduler=None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">postpone_jobs=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">early_realtime=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">merge_subscriptions=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metadata_interface=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">skip_version_check=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rollback_depth=2)</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">custom:</span> <span class="pre">~typing.Dict[str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~typing.Any]</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">logging:</span> <span class="pre">~dipdup.enums.LoggingValues</span> <span class="pre">=</span> <span class="pre">LoggingValues.default</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#dipdup.config.DipDupConfig" title="Permalink to this definition">¶</a></dt>
117+
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">dipdup.config.</span></span><span class="sig-name descname"><span class="pre">DipDupConfig</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">spec_version:</span> <span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">package:</span> <span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">datasources:</span> <span class="pre">~typing.Dict[str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~typing.Union[~dipdup.config.TzktDatasourceConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.CoinbaseDatasourceConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.MetadataDatasourceConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.IpfsDatasourceConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.HttpDatasourceConfig]]</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">database:</span> <span class="pre">~typing.Union[~dipdup.config.SqliteDatabaseConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.PostgresDatabaseConfig]</span> <span class="pre">=</span> <span class="pre">SqliteDatabaseConfig(kind='sqlite'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">path=':memory:')</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">contracts:</span> <span class="pre">~typing.Dict[str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.ContractConfig]</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">indexes:</span> <span class="pre">~typing.Dict[str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~typing.Union[~dipdup.config.OperationIndexConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.BigMapIndexConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.HeadIndexConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.TokenTransferIndexConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.IndexTemplateConfig]]</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">templates:</span> <span class="pre">~typing.Dict[str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~typing.Union[~dipdup.config.OperationIndexConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.BigMapIndexConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.HeadIndexConfig</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.TokenTransferIndexConfig]]</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">jobs:</span> <span class="pre">~typing.Dict[str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.JobConfig]</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">hooks:</span> <span class="pre">~typing.Dict[str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~dipdup.config.HookConfig]</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">hasura:</span> <span class="pre">~typing.Optional[~dipdup.config.HasuraConfig]</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sentry:</span> <span class="pre">~typing.Optional[~dipdup.config.SentryConfig]</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prometheus:</span> <span class="pre">~typing.Optional[~dipdup.config.PrometheusConfig]</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">advanced:</span> <span class="pre">~dipdup.config.AdvancedConfig</span> <span class="pre">=</span> <span class="pre">AdvancedConfig(reindex={}</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scheduler=None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">postpone_jobs=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">early_realtime=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">merge_subscriptions=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metadata_interface=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">skip_version_check=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rollback_depth=2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">crash_reporting=False)</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">custom:</span> <span class="pre">~typing.Dict[str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~typing.Any]</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">logging:</span> <span class="pre">~dipdup.enums.LoggingValues</span> <span class="pre">=</span> <span class="pre">LoggingValues.default</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#dipdup.config.DipDupConfig" title="Permalink to this definition">¶</a></dt>
117118
<dd><p>Main indexer config</p>
118119
<dl class="field-list simple">
119120
<dt class="field-odd">Parameters<span class="colon">:</span></dt>

0 commit comments

Comments
 (0)