Jump to content

Developing a standalone embystat server


reggi

Recommended Posts

mgworek

everything ?

so after a update of the container you need to do that again ?

That is a good question. I haven't had it break after an update but I was having db lock ups with the old version so it didn't run long enough to find out. 

 

Maybe just the 3 folders you mentioned in a another post 

/app/Database

/app/Logs

/app/Settings

Link to comment
Share on other sites

WilhelmStroker

I'm still getting an error message when running my initial sync with beta 8. Relevant bit of the log file below:

2019-08-02 20:22:02.9844 [INFO] EMBY-CLIENT Sending GET: http://10.0.0.9:8096/emby/persons%2fGordon+Ramsay?SeriesStatuses=&fields=&Filters=&ImageTypes=&AirDays=&EnableImageTypes=&recursive=False&Genres=&StudioIds=&format=json 
2019-08-02 20:22:03.0415 [ERROR] Error while running job System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at EmbyStat.Services.ShowService.CalculateCollectedRateChart(IReadOnlyList`1 shows) in d:\a\1\s\EmbyStat.Services\ShowService.cs:line 255
   at EmbyStat.Services.ShowService.CalculateCharts(IReadOnlyList`1 shows) in d:\a\1\s\EmbyStat.Services\ShowService.cs:line 98
   at EmbyStat.Services.ShowService.CalculateShowStatistics(List`1 collectionIds) in d:\a\1\s\EmbyStat.Services\ShowService.cs:line 66
   at EmbyStat.Jobs.Jobs.Sync.MediaSyncJob.CalculateStatistics() in d:\a\1\s\EmbyStat.Jobs\Jobs\Sync\MediaSyncJob.cs:line 130
   at EmbyStat.Jobs.Jobs.Sync.MediaSyncJob.RunJobAsync() in d:\a\1\s\EmbyStat.Jobs\Jobs\Sync\MediaSyncJob.cs:line 97
   at EmbyStat.Jobs.BaseJob.Execute() in d:\a\1\s\EmbyStat.Jobs\BaseJob.cs:line 54
2019-08-02 20:22:03.0553 [ERROR] MEDIASYNC-JOB Job failed, check logs for more info. 
2019-08-02 20:22:03.0642 [WARN] Failed to process the job 'fe3ac205-fc95-4b02-9dd2-a51336c2712b': an exception occurred. Retry attempt 1 of 2 will be performed in 00:00:39. System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at EmbyStat.Services.ShowService.CalculateCollectedRateChart(IReadOnlyList`1 shows) in d:\a\1\s\EmbyStat.Services\ShowService.cs:line 255
   at EmbyStat.Services.ShowService.CalculateCharts(IReadOnlyList`1 shows) in d:\a\1\s\EmbyStat.Services\ShowService.cs:line 98
   at EmbyStat.Services.ShowService.CalculateShowStatistics(List`1 collectionIds) in d:\a\1\s\EmbyStat.Services\ShowService.cs:line 66
   at EmbyStat.Jobs.Jobs.Sync.MediaSyncJob.CalculateStatistics() in d:\a\1\s\EmbyStat.Jobs\Jobs\Sync\MediaSyncJob.cs:line 130
   at EmbyStat.Jobs.Jobs.Sync.MediaSyncJob.RunJobAsync() in d:\a\1\s\EmbyStat.Jobs\Jobs\Sync\MediaSyncJob.cs:line 97
   at EmbyStat.Jobs.BaseJob.Execute() in d:\a\1\s\EmbyStat.Jobs\BaseJob.cs:line 54
   at EmbyStat.Jobs.BaseJob.Execute() in d:\a\1\s\EmbyStat.Jobs\BaseJob.cs:line 66
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Link to comment
Share on other sites

Hope I am not just repeating a question already asked, but is there any possibility of adding an option like Plex has where you can see realtime cpu/memory/gpu usage?

Link to comment
Share on other sites

adrianwi

Just wanted to say I'd updated to beta8 and everything seems to be working pretty well!

 

I think it would be good to get the database in the /config folder so this can be mapped outside the container, but at the minute recreating doesn't take a huge amount of time and I'm not losing anything.

 

Keep up the great work!  EmbyPy here we come ;-)

  • Like 2
Link to comment
Share on other sites

@@WilhelmStroker mmm, I'll create a bug for this on github. I can't really do stuff because I crashed my computer yesterday. Have to wait for some new BIOS chips before I can continue developing. But your bug seems like I just missed a null check somewhere.

 

@@Moods, sounds like a nice idea. At the moment I have no idea if it's possible to query that data from the Emby api. Have to check. Feel free to create a feature request on https://embystat.featureupvote.com/ so I don't loose track of this.

 

 

I'm working on moving all the config data into a /config folder. Not sure if I will move the logs to that folder as well, still use the /logs folder or /config/logs.

  • Like 1
Link to comment
Share on other sites

Happy2Play

No.  It is not fully functional at this time.

 

What does the plugin do and/or do better that the standalone server?  For me the Statistics plugin is completely dead.  And from  new install standpoint it does not work really at all.

 

Does this fully replace the plugin at this point?

 

From my testing yes.

Link to comment
Share on other sites

thekingswolf

no user breakdown yet.  old plugin would track what user is watching what and what their watched percentage is.  Also missing episodes data is currently inaccurate.  

 

I do agree the stats plugin is dead however.  It no longer functions for me at all I had to uninstall it.

Edited by thekingswolf
  • Like 2
Link to comment
Share on other sites

Happy2Play

Don't know if it has been reported but when you click on Any linked item that takes you to Emby you can not click on the three dot More button do to missing "&serverId=xxxxxxxxxxxxxxxxxxxx" in urls.
 
5d47cfd40d690_EmbyStatslinked.jpg
 
Example directly from Emby.

http://192.168.151.16:8096/web/index.html#!/item/item.html?id=93429&serverId=0ad8df3d617d497385d14xxxxxxxxxx
Edited by Happy2Play
Link to comment
Share on other sites

Hi, since the statistics plugin isn't really working anymore, I am thinking to give the emybstat server a try.
Since I am running a linux server (proxmox containers with debian) I just wanted to know, if there's already a dpk available or not?
Until know, I only found docker container and windows installation... ;)

Also, I would like to know, if I need to install the server on the same machine than emby is running on, or if I could install it on another container and it will fetch the data from emby through the network.
 

Link to comment
Share on other sites

@@Luke, at the moment it doesn't replace it. I'll see if I can update the plugin again soon to fix the null ref exception so it runs again.

 

@@Happy2Play, thanks for the bug report! Haven't noticed that before so I will create an issue for it asap. Should be a small fix

 

@@CChris, there is no dpk at the moment. If you have any experience create them feel free to contact me and see how we can create one on the automated builds. At the moment I have no idea how to do that myself :)

Link to comment
Share on other sites

Hi, thanks for your reply :)
running emby (and a few other things on linux) are basically my first steps into the linux world.
So, at the moment, I do not know how to create a dpk - but maybe, I can figure it out :)

If you CAN fix the plugin, that would be nice - ok, my user base isn't that big - any at home we're usually using my personal account... but I am a big fan of stats ;)
 

  • Like 1
Link to comment
Share on other sites

@reggi: I've forked your project to be able to play around a bit with creating a linux / debian installation package...

  • Like 1
Link to comment
Share on other sites

I'll see what I can do today for the plugin. Should be a simple fix really :)

 

@@CChris, have fun playing around with it. If you need any info feel free to drop me a message or PM!

Edited by reggi
Link to comment
Share on other sites

Hi,

 

Thanks so much for undertaking this project! I am a Plex divorcee and missing Tautulli 

 

I am running Emby on my unRAID server and have never installed a docker other than clicking install! 

 

I am sorry to ask this, I have been reading back on this topic but can anyone please give a step by step on how to get this installed as a docker?

 

Many Thanks in advance!

  • Like 1
Link to comment
Share on other sites

Hey guys,

 

I just a new beta version to docker and github, version 0.2.0-beta.9

 

Some smaller issues are fixed

- Added check for invalid person name #847
- Fixed play time for episodes #812
- Added an unraid config file #858
- Added server id to external Emby links #863
- Added title to actor statistics card #826 (partial fix)
 
EDIT: Forgot to mention that you should install this as a clean install because I moved all settings and database file to /config folder
So when running this with docker, the only folder you need to mount is /app/config

 

For issue #858, can someone with an Unraid server check if the config file is working or not? https://raw.githubusercontent.com/mregni/EmbyStat/develop/Templates/EmbyStatBeta.xml

 

Download link:

https://github.com/mregni/EmbyStat/releases/tag/0.2.0-beta.9

 

Happy testing!

Edited by reggi
  • Like 2
Link to comment
Share on other sites

 

 

<HostDir>/mnt/cache/appdata/embystat/config</HostDir>

<ContainerDir>/config</ContainerDir>

 

I didnt try the XML however in the ContainerDir field I believe it should be /app/config as thats what that field is mounting from the docker, with that it would attempt to mount /config which doesn't exist, Ill give it a try later however.

 

 

Link to comment
Share on other sites

Finally got this running as a docker on unRAID!  :D

 

is the Dashboard supposed to show 

 

"No content here yet (string is not translated either)"

Link to comment
Share on other sites

/app/config is empty.

 

Scratch that....

 

To get this running persistently in docker run the container without a volume then "docker cp embystat:/app/config /opt/appdata/embystat/" (i keep all my configs in /opt/appdata) the run the docker with the volume "-v /opt/appdata/embystat/config:/app/config"

Edited by Pog22
Link to comment
Share on other sites

@@mbc0 and @@reggi
How to Install Embystat Docker on Unraid

(Images included if wanted)
 
Required: Install Community Applications Plugin located at https://forums.unraid.net/topic/38582-plug-in-community-applications/ 
 
1. Go to the Community Applications Plugin (APPS in your unraid topbar)
 
2. Scroll down and select the settings option under OTHER on the left hand side
 
3. Change Enable additional search results from dockerHub? To Yes and hit apply.
 
4. Go back to the Community Apps main page and search for embystat
 
5. Click Install
 
6. Click Add another Path, Port, Variable, Label or Device And set the following 2 variables:
Config Type: Port
Name: Container Port
Container Port: 6555
Host Port: 6555
Connection Type: TCP
 
 
Config Type: Path
Name: Config
Container Path: /app/config
Host Path: /mnt/cache/appdata/embystat/config
Access Mode: Read/Write
 
 
7. Change your Repository to point to: uping/embystat:beta-ubuntu-x64
 
8. Next select the basic view tab in the top right to turn it to advanced and add http://[iP]:[PORT:6555]/ under the WebUI: Field.
 
9. Hit apply (THIS IS GOING TO FAIL CURRENTLY DON'T WORRY ABOUT IT)
 
10. In the logs you will see something like this:
 
Unhandled Exception: System.IO.FileNotFoundException: Could not find file '/app/config/nlog.config'.
at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter)
at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions  
    options)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy)
at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn)
at System.Xml.XmlTextReaderImpl.FinishInitUriString()
at System.Xml.XmlTextReaderImpl..ctor(String uriStr, XmlReaderSettings settings, XmlParserContext context, XmlResolver uriResolver)
at System.Xml.XmlReaderSettings.CreateReader(String inputUri, XmlParserContext inputContext)
at NLog.Config.LoggingConfigurationFileLoader.LoadXmlLoggingConfigurationFile(LogFactory logFactory, String configFile)
at NLog.LogFactory.LoadConfiguration(String configFile)
at NLog.LogManager.LoadConfiguration(String configFile)
at EmbyStat.Web.Program.Main(String[] args) in d:\a\1\s\EmbyStat.Web\Program.cs:line 21 
 
To fix this:
 
Put this following file in place on your server under /mnt/cache/appdata/embystat/config:
 
 
Either copy and paste into a file named the same thing on your unraid server or check out the project and grab the file from there
 
Hit start on your docker again and you should be good to go!
Edited by magmu
  • Like 2
Link to comment
Share on other sites

WilhelmStroker

I'm still getting an error message when running my initial sync with beta 8. Relevant bit of the log file below:

 

 

2019-08-02 20:22:02.9844 [INFO] EMBY-CLIENT Sending GET: http://10.0.0.9:8096/emby/persons%2fGordon+Ramsay?SeriesStatuses=&fields=&Filters=&ImageTypes=&AirDays=&EnableImageTypes=&recursive=False&Genres=&StudioIds=&format=json 
2019-08-02 20:22:03.0415 [ERROR] Error while running job System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at EmbyStat.Services.ShowService.CalculateCollectedRateChart(IReadOnlyList`1 shows) in d:\a\1\s\EmbyStat.Services\ShowService.cs:line 255
   at EmbyStat.Services.ShowService.CalculateCharts(IReadOnlyList`1 shows) in d:\a\1\s\EmbyStat.Services\ShowService.cs:line 98
   at EmbyStat.Services.ShowService.CalculateShowStatistics(List`1 collectionIds) in d:\a\1\s\EmbyStat.Services\ShowService.cs:line 66
   at EmbyStat.Jobs.Jobs.Sync.MediaSyncJob.CalculateStatistics() in d:\a\1\s\EmbyStat.Jobs\Jobs\Sync\MediaSyncJob.cs:line 130
   at EmbyStat.Jobs.Jobs.Sync.MediaSyncJob.RunJobAsync() in d:\a\1\s\EmbyStat.Jobs\Jobs\Sync\MediaSyncJob.cs:line 97
   at EmbyStat.Jobs.BaseJob.Execute() in d:\a\1\s\EmbyStat.Jobs\BaseJob.cs:line 54
2019-08-02 20:22:03.0553 [ERROR] MEDIASYNC-JOB Job failed, check logs for more info. 
2019-08-02 20:22:03.0642 [WARN] Failed to process the job 'fe3ac205-fc95-4b02-9dd2-a51336c2712b': an exception occurred. Retry attempt 1 of 2 will be performed in 00:00:39. System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at EmbyStat.Services.ShowService.CalculateCollectedRateChart(IReadOnlyList`1 shows) in d:\a\1\s\EmbyStat.Services\ShowService.cs:line 255
   at EmbyStat.Services.ShowService.CalculateCharts(IReadOnlyList`1 shows) in d:\a\1\s\EmbyStat.Services\ShowService.cs:line 98
   at EmbyStat.Services.ShowService.CalculateShowStatistics(List`1 collectionIds) in d:\a\1\s\EmbyStat.Services\ShowService.cs:line 66
   at EmbyStat.Jobs.Jobs.Sync.MediaSyncJob.CalculateStatistics() in d:\a\1\s\EmbyStat.Jobs\Jobs\Sync\MediaSyncJob.cs:line 130
   at EmbyStat.Jobs.Jobs.Sync.MediaSyncJob.RunJobAsync() in d:\a\1\s\EmbyStat.Jobs\Jobs\Sync\MediaSyncJob.cs:line 97
   at EmbyStat.Jobs.BaseJob.Execute() in d:\a\1\s\EmbyStat.Jobs\BaseJob.cs:line 54
   at EmbyStat.Jobs.BaseJob.Execute() in d:\a\1\s\EmbyStat.Jobs\BaseJob.cs:line 66
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
Looks like this one's fixed now.
  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...