<matrixBuild _class='hudson.matrix.MatrixBuild'><action _class='hudson.model.CauseAction'><cause _class='org.jenkinsci.plugins.workflow.support.steps.build.BuildUpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts" build number 1,247</shortDescription><upstreamBuild>1247</upstreamBuild><upstreamProject>gerrit-osmo-bts</upstreamProject><upstreamUrl>job/gerrit-osmo-bts/</upstreamUrl></cause></action><action></action><action _class='hudson.model.ParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42704</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/04/42704/10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1247/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>573019</blockedDurationMillis><blockedTimeMillis>573019</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>551783</buildingDurationMillis><executingTimeMillis>551783</executingTimeMillis><executorUtilization>1.0</executorUtilization><queuingDurationMillis>582594</queuingDurationMillis><queuingTimeMillis>582594</queuingTimeMillis><subTaskCount>0</subTaskCount><totalDurationMillis>1134377</totalDurationMillis><waitingDurationMillis>9567</waitingDurationMillis><waitingTimeMillis>9567</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1247</buildNumber><marked><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></marked><revision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/job/gerrit-osmo-bts-build/1247/artifact</artifactsUrl><changesUrl>https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/job/gerrit-osmo-bts-build/changes</changesUrl><displayUrl>https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/job/gerrit-osmo-bts-build/1247/</displayUrl><testsUrl>https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/job/gerrit-osmo-bts-build/1247/testReport</testsUrl></action><building>false</building><displayName>#1247</displayName><duration>551783</duration><estimatedDuration>558674</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build #1247</fullDisplayName><id>1247</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1247</number><queueId>109209</queueId><result>SUCCESS</result><timestamp>1777898626718</timestamp><url>https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/job/gerrit-osmo-bts-build/1247/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.h</affectedPath><commitId>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</commitId><timestamp>1777897997000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
</comment><date>2026-05-04 16:33:17 +0400</date><id>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</id><msg>trx: add JSON stats export for WebSDR API</msg><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.h</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName><id>dtv.comp</id></culprit><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42704</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/04/42704/10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1247/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,247</shortDescription><upstreamBuild>1247</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>5174</buildableDurationMillis><buildableTimeMillis>5174</buildableTimeMillis><buildingDurationMillis>67171</buildingDurationMillis><executingTimeMillis>67171</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1247</buildNumber><marked><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></marked><revision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1247</displayName><duration>67171</duration><estimatedDuration>69197</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=lc15,FIRMWARE_VERSION=litecell15,0,default,osmocom-gerrit #1247</fullDisplayName><id>1247</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1247</number><queueId>109256</queueId><result>SUCCESS</result><timestamp>1777898626718</timestamp><url>https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/job/gerrit-osmo-bts-build/BTS_MODEL=lc15,FIRMWARE_VERSION=litecell15,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1247/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.c</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.h</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><commitId>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</commitId><timestamp>1777897997000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
</comment><date>2026-05-04 16:33:17 +0400</date><id>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</id><msg>trx: add JSON stats export for WebSDR API</msg><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.h</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42704</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/04/42704/10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1247/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,247</shortDescription><upstreamBuild>1247</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>42870</buildableDurationMillis><buildableTimeMillis>42870</buildableTimeMillis><buildingDurationMillis>67279</buildingDurationMillis><executingTimeMillis>67279</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1247</buildNumber><marked><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></marked><revision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1247</displayName><duration>67279</duration><estimatedDuration>69261</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=lc15,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1247</fullDisplayName><id>1247</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1247</number><queueId>109260</queueId><result>SUCCESS</result><timestamp>1777898626718</timestamp><url>https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/job/gerrit-osmo-bts-build/BTS_MODEL=lc15,FIRMWARE_VERSION=master,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1247/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.c</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.h</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><commitId>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</commitId><timestamp>1777897997000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
</comment><date>2026-05-04 16:33:17 +0400</date><id>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</id><msg>trx: add JSON stats export for WebSDR API</msg><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.h</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42704</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/04/42704/10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1247/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,247</shortDescription><upstreamBuild>1247</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>70942</buildingDurationMillis><executingTimeMillis>70942</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1247</buildNumber><marked><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></marked><revision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1247</displayName><duration>70942</duration><estimatedDuration>65666</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=lc15,FIRMWARE_VERSION=v2017.01,0,default,osmocom-gerrit #1247</fullDisplayName><id>1247</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1247</number><queueId>109253</queueId><result>SUCCESS</result><timestamp>1777898626718</timestamp><url>https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/job/gerrit-osmo-bts-build/BTS_MODEL=lc15,FIRMWARE_VERSION=v2017.01,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1247/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.c</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.h</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><commitId>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</commitId><timestamp>1777897997000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
</comment><date>2026-05-04 16:33:17 +0400</date><id>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</id><msg>trx: add JSON stats export for WebSDR API</msg><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.h</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42704</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/04/42704/10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1247/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,247</shortDescription><upstreamBuild>1247</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>113132</buildableDurationMillis><buildableTimeMillis>113132</buildableTimeMillis><buildingDurationMillis>66653</buildingDurationMillis><executingTimeMillis>66653</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1247</buildNumber><marked><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></marked><revision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1247</displayName><duration>66653</duration><estimatedDuration>60771</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=oc2g,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1247</fullDisplayName><id>1247</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1247</number><queueId>109267</queueId><result>SUCCESS</result><timestamp>1777898626718</timestamp><url>https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/job/gerrit-osmo-bts-build/BTS_MODEL=oc2g,FIRMWARE_VERSION=master,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1247/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.c</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.h</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><commitId>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</commitId><timestamp>1777897997000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
</comment><date>2026-05-04 16:33:17 +0400</date><id>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</id><msg>trx: add JSON stats export for WebSDR API</msg><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.h</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42704</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/04/42704/10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1247/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,247</shortDescription><upstreamBuild>1247</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>7607</buildableDurationMillis><buildableTimeMillis>7607</buildableTimeMillis><buildingDurationMillis>62707</buildingDurationMillis><executingTimeMillis>62707</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1247</buildNumber><marked><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></marked><revision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1247</displayName><duration>62707</duration><estimatedDuration>67679</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=oc2g,FIRMWARE_VERSION=oc2g,0,default,osmocom-gerrit #1247</fullDisplayName><id>1247</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1247</number><queueId>109258</queueId><result>SUCCESS</result><timestamp>1777898626718</timestamp><url>https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/job/gerrit-osmo-bts-build/BTS_MODEL=oc2g,FIRMWARE_VERSION=oc2g,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1247/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.c</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.h</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><commitId>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</commitId><timestamp>1777897997000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
</comment><date>2026-05-04 16:33:17 +0400</date><id>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</id><msg>trx: add JSON stats export for WebSDR API</msg><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.h</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42704</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/04/42704/10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1247/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,247</shortDescription><upstreamBuild>1247</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>71012</buildableDurationMillis><buildableTimeMillis>71012</buildableTimeMillis><buildingDurationMillis>58630</buildingDurationMillis><executingTimeMillis>58630</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1247</buildNumber><marked><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></marked><revision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1247</displayName><duration>58630</duration><estimatedDuration>58926</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=oc2g,FIRMWARE_VERSION=oc2g-next,0,default,osmocom-gerrit #1247</fullDisplayName><id>1247</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1247</number><queueId>109264</queueId><result>SUCCESS</result><timestamp>1777898626718</timestamp><url>https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/job/gerrit-osmo-bts-build/BTS_MODEL=oc2g,FIRMWARE_VERSION=oc2g-next,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1247/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.h</affectedPath><commitId>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</commitId><timestamp>1777897997000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
</comment><date>2026-05-04 16:33:17 +0400</date><id>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</id><msg>trx: add JSON stats export for WebSDR API</msg><path><editType>edit</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.h</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42704</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/04/42704/10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1247/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,247</shortDescription><upstreamBuild>1247</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>64366</buildableDurationMillis><buildableTimeMillis>64366</buildableTimeMillis><buildingDurationMillis>59538</buildingDurationMillis><executingTimeMillis>59538</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1247</buildNumber><marked><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></marked><revision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1247</displayName><duration>59538</duration><estimatedDuration>60512</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=oct,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1247</fullDisplayName><id>1247</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1247</number><queueId>109261</queueId><result>SUCCESS</result><timestamp>1777898626718</timestamp><url>https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/job/gerrit-osmo-bts-build/BTS_MODEL=oct,FIRMWARE_VERSION=master,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1247/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.h</affectedPath><commitId>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</commitId><timestamp>1777897997000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
</comment><date>2026-05-04 16:33:17 +0400</date><id>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</id><msg>trx: add JSON stats export for WebSDR API</msg><path><editType>edit</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.h</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42704</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/04/42704/10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1247/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,247</shortDescription><upstreamBuild>1247</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>5716</buildableDurationMillis><buildableTimeMillis>5716</buildableTimeMillis><buildingDurationMillis>57939</buildingDurationMillis><executingTimeMillis>57939</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1247</buildNumber><marked><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></marked><revision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1247</displayName><duration>57939</duration><estimatedDuration>63285</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=oct+trx,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1247</fullDisplayName><id>1247</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1247</number><queueId>109257</queueId><result>SUCCESS</result><timestamp>1777898626718</timestamp><url>https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/job/gerrit-osmo-bts-build/BTS_MODEL=oct+trx,FIRMWARE_VERSION=master,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1247/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.c</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.h</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><commitId>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</commitId><timestamp>1777897997000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
</comment><date>2026-05-04 16:33:17 +0400</date><id>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</id><msg>trx: add JSON stats export for WebSDR API</msg><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.h</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42704</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/04/42704/10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1247/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,247</shortDescription><upstreamBuild>1247</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>67434</buildableDurationMillis><buildableTimeMillis>67434</buildableTimeMillis><buildingDurationMillis>95126</buildingDurationMillis><executingTimeMillis>95126</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1247</buildNumber><marked><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></marked><revision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1247</displayName><duration>95126</duration><estimatedDuration>94121</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=femtobts_v2.7,1,default,osmocom-gerrit #1247</fullDisplayName><id>1247</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1247</number><queueId>109263</queueId><result>SUCCESS</result><timestamp>1777898626718</timestamp><url>https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/job/gerrit-osmo-bts-build/BTS_MODEL=sysmo,FIRMWARE_VERSION=femtobts_v2.7,WITH_MANUALS=1,a4=default,label=osmocom-gerrit/1247/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.h</affectedPath><commitId>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</commitId><timestamp>1777897997000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
</comment><date>2026-05-04 16:33:17 +0400</date><id>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</id><msg>trx: add JSON stats export for WebSDR API</msg><path><editType>edit</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.h</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42704</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/04/42704/10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1247/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,247</shortDescription><upstreamBuild>1247</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>71644</buildableDurationMillis><buildableTimeMillis>71644</buildableTimeMillis><buildingDurationMillis>68025</buildingDurationMillis><executingTimeMillis>68025</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1247</buildNumber><marked><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></marked><revision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1247</displayName><duration>68025</duration><estimatedDuration>65347</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1247</fullDisplayName><id>1247</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1247</number><queueId>109265</queueId><result>SUCCESS</result><timestamp>1777898626718</timestamp><url>https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/job/gerrit-osmo-bts-build/BTS_MODEL=sysmo,FIRMWARE_VERSION=master,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1247/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.h</affectedPath><commitId>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</commitId><timestamp>1777897997000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
</comment><date>2026-05-04 16:33:17 +0400</date><id>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</id><msg>trx: add JSON stats export for WebSDR API</msg><path><editType>edit</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.h</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42704</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/04/42704/10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1247/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,247</shortDescription><upstreamBuild>1247</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>67282</buildableDurationMillis><buildableTimeMillis>67282</buildableTimeMillis><buildingDurationMillis>66849</buildingDurationMillis><executingTimeMillis>66849</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1247</buildNumber><marked><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></marked><revision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1247</displayName><duration>66849</duration><estimatedDuration>64699</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v2.4,0,default,osmocom-gerrit #1247</fullDisplayName><id>1247</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1247</number><queueId>109262</queueId><result>SUCCESS</result><timestamp>1777898626718</timestamp><url>https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/job/gerrit-osmo-bts-build/BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v2.4,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1247/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.h</affectedPath><commitId>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</commitId><timestamp>1777897997000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
</comment><date>2026-05-04 16:33:17 +0400</date><id>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</id><msg>trx: add JSON stats export for WebSDR API</msg><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.h</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42704</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/04/42704/10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1247/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,247</shortDescription><upstreamBuild>1247</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>124710</buildableDurationMillis><buildableTimeMillis>124710</buildableTimeMillis><buildingDurationMillis>62162</buildingDurationMillis><executingTimeMillis>62162</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1247</buildNumber><marked><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></marked><revision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1247</displayName><duration>62162</duration><estimatedDuration>63184</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v3.0.1pre,0,default,osmocom-gerrit #1247</fullDisplayName><id>1247</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1247</number><queueId>109268</queueId><result>SUCCESS</result><timestamp>1777898626718</timestamp><url>https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/job/gerrit-osmo-bts-build/BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v3.0.1pre,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1247/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.h</affectedPath><commitId>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</commitId><timestamp>1777897997000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
</comment><date>2026-05-04 16:33:17 +0400</date><id>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</id><msg>trx: add JSON stats export for WebSDR API</msg><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.h</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42704</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/04/42704/10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1247/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,247</shortDescription><upstreamBuild>1247</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>66293</buildingDurationMillis><executingTimeMillis>66293</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1247</buildNumber><marked><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></marked><revision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1247</displayName><duration>66293</duration><estimatedDuration>62358</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v3.1,0,default,osmocom-gerrit #1247</fullDisplayName><id>1247</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1247</number><queueId>109255</queueId><result>SUCCESS</result><timestamp>1777898626718</timestamp><url>https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/job/gerrit-osmo-bts-build/BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v3.1,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1247/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.h</affectedPath><commitId>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</commitId><timestamp>1777897997000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
</comment><date>2026-05-04 16:33:17 +0400</date><id>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</id><msg>trx: add JSON stats export for WebSDR API</msg><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.h</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42704</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/04/42704/10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1247/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,247</shortDescription><upstreamBuild>1247</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>80910</buildableDurationMillis><buildableTimeMillis>80910</buildableTimeMillis><buildingDurationMillis>68009</buildingDurationMillis><executingTimeMillis>68009</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1247</buildNumber><marked><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></marked><revision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1247</displayName><duration>68009</duration><estimatedDuration>64711</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v5.1,0,default,osmocom-gerrit #1247</fullDisplayName><id>1247</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1247</number><queueId>109266</queueId><result>SUCCESS</result><timestamp>1777898626718</timestamp><url>https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/job/gerrit-osmo-bts-build/BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v5.1,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1247/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.h</affectedPath><commitId>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</commitId><timestamp>1777897997000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
</comment><date>2026-05-04 16:33:17 +0400</date><id>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</id><msg>trx: add JSON stats export for WebSDR API</msg><path><editType>edit</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.h</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42704</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/04/42704/10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1247/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,247</shortDescription><upstreamBuild>1247</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>66122</buildingDurationMillis><executingTimeMillis>66122</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1247</buildNumber><marked><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></marked><revision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1247</displayName><duration>66122</duration><estimatedDuration>63452</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=trx,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1247</fullDisplayName><id>1247</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1247</number><queueId>109254</queueId><result>SUCCESS</result><timestamp>1777898626718</timestamp><url>https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/job/gerrit-osmo-bts-build/BTS_MODEL=trx,FIRMWARE_VERSION=master,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1247/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.c</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.h</affectedPath><commitId>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</commitId><timestamp>1777897997000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
</comment><date>2026-05-04 16:33:17 +0400</date><id>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</id><msg>trx: add JSON stats export for WebSDR API</msg><path><editType>edit</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.h</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42704</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/04/42704/10</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1247/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,247</shortDescription><upstreamBuild>1247</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>1</buildableDurationMillis><buildableTimeMillis>1</buildableTimeMillis><buildingDurationMillis>548380</buildingDurationMillis><executingTimeMillis>548380</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><master _class='hudson.plugins.git.util.Build'><buildNumber>1247</buildNumber><marked><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></marked><revision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><branch><SHA1>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1247</displayName><duration>548380</duration><estimatedDuration>555911</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=trx,FIRMWARE_VERSION=master,0,default,raspbian #1247</fullDisplayName><id>1247</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1247</number><queueId>109259</queueId><result>SUCCESS</result><timestamp>1777898626718</timestamp><url>https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/job/gerrit-osmo-bts-build/BTS_MODEL=trx,FIRMWARE_VERSION=master,WITH_MANUALS=0,a4=default,label=raspbian/1247/</url><builtOn>rpi4-raspbian12build-ansible-2</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/Makefile.am</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.c</affectedPath><affectedPath>src/osmo-bts-trx/stats_json.h</affectedPath><affectedPath>src/osmo-bts-trx/osmo-bts-trx-websdr.c</affectedPath><commitId>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</commitId><timestamp>1777897997000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
</comment><date>2026-05-04 16:33:17 +0400</date><id>a0c5c07595bc5d088e5d961872d196f2e6f8fd50</id><msg>trx: add JSON stats export for WebSDR API</msg><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.h</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/osmo-bts-trx-websdr.c</file></path><path><editType>edit</editType><file>src/osmo-bts-trx/Makefile.am</file></path><path><editType>add</editType><file>src/osmo-bts-trx/stats_json.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run></matrixBuild>